{
  "openapi": "3.0.1",
  "info": {
    "title": "Company Register Search: France SIREN/SIRET + Global LEI",
    "description": "Official company data without an API key: search French companies by name, SIREN, SIRET or VAT and any company worldwide by name or LEI, or monitor new French company registrations daily (BODACC), by département and NAF code. One clean schema, LEI<->SIREN links. Companies only.",
    "version": "1.1",
    "x-build-id": "cgQtYbfXIsuBkki5z"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/humble-echidna~company-registers/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-humble-echidna-company-registers",
        "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/humble-echidna~company-registers/runs": {
      "post": {
        "operationId": "runs-sync-humble-echidna-company-registers",
        "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/humble-echidna~company-registers/run-sync": {
      "post": {
        "operationId": "run-sync-humble-echidna-company-registers",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "newCompanies"
            ],
            "type": "string",
            "description": "`search` (the default): look up companies by name, SIREN/SIRET/VAT/LEI or filters in the registers below. `newCompanies`: companies newly registered in France, read from BODACC's daily files, filtered by departments, regions, postalCodes and optionally activityCodes/activitySections; searchTerms, identifiers, registers and the other filters are then ignored or refused.",
            "default": "search"
          },
          "searchTerms": {
            "title": "Company names to search for",
            "type": "array",
            "description": "Company names (or parts of names), one per line, e.g. `airbus` or `boulangerie paul`. Each line is searched in every selected register and returns up to maxResultsPerSearch from each, best match first. A line that is a SIREN, SIRET, French VAT number or LEI is looked up as one. Left out, it defaults to airbus: pass an empty list for identifier lookups or filter-only searches.",
            "default": [
              "airbus"
            ],
            "items": {
              "type": "string"
            }
          },
          "identifiers": {
            "title": "SIREN, SIRET, VAT or LEI numbers",
            "type": "array",
            "description": "Exact lookups, one per line: a SIREN (9 digits, e.g. 662042449), a SIRET (14 digits), a French VAT number (FR76662042449), an LEI (20 characters, e.g. R0MUWSFPU8MPRO8K5P83), or an Annuaire des Entreprises or GLEIF search link. Each returns the company from every selected register that has it. Check digits are verified, so a typo is reported instead of fetched. For lookups only, set searchTerms to an empty list.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "registers": {
            "title": "Registers",
            "type": "array",
            "description": "Which registers to return companies from: `france` (the SIREN/SIRET register, API Recherche d'entreprises) and/or `lei` (the Global LEI Index, GLEIF, all countries). Default both. Each company is one result, so a company found in both registers is two results (linked by their `identifiers`).",
            "items": {
              "type": "string",
              "enum": [
                "france",
                "lei"
              ],
              "enumTitles": [
                "France: SIREN/SIRET register (API Recherche d'entreprises)",
                "Global LEI Index (GLEIF, all countries)"
              ]
            },
            "default": [
              "france",
              "lei"
            ]
          },
          "maxResultsPerSearch": {
            "title": "Max companies per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many companies each search line (or the filters alone) returns at most from each register, best match first: 1 to 10,000 (the French API's own limit per search), default 10.",
            "default": 10
          },
          "crossLink": {
            "title": "Add each French company's LEI",
            "type": "boolean",
            "description": "Default true: fill `identifiers.lei` of French companies from the Global LEI Index (one extra request per 50 companies, no extra charge). LEI records always get their French `identifiers.siren` when they have one.",
            "default": true
          },
          "status": {
            "title": "Filter: status",
            "enum": [
              "any",
              "active",
              "inactive"
            ],
            "type": "string",
            "description": "`any` (the default), `active` (active only) or `inactive` (closed / inactive only). France: état administratif; LEI: entity status. Applies to both registers.",
            "default": "any"
          },
          "activityCodes": {
            "title": "France: activity (NAF/APE codes)",
            "type": "array",
            "description": "Only French companies with one of these main activity codes (NAF rev. 2 / APE), one per line, e.g. 62.01Z (computer programming) or 6201Z. Search mode: any France filter limits the search to the French register. newCompanies mode: needs departments, regions or postalCodes, and costs one lookup per company in that area (see maxNafLookups).",
            "items": {
              "type": "string"
            }
          },
          "activitySections": {
            "title": "France: activity sections",
            "type": "array",
            "description": "Only French companies in these NAF sections, one letter per line, e.g. J (information and communication), F (construction), K (finance). In newCompanies mode, like activityCodes: needs a place filter; a company matching either list is kept.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "France: departments",
            "type": "array",
            "description": "Only companies in these départements, one per line, e.g. 75, 69, 2A, 971. Search mode: an establishment there. newCompanies mode: the registered office there (from its postal code).",
            "items": {
              "type": "string"
            }
          },
          "regions": {
            "title": "France: regions",
            "type": "array",
            "description": "Only companies in these regions (all their départements), in both modes, e.g. `ile-de-france`, `bretagne`, `auvergne-rhone-alpes`, `provence-alpes-cote-d-azur`, `la-reunion`. Combined with departments: either matches.",
            "items": {
              "type": "string",
              "enum": [
                "auvergne-rhone-alpes",
                "bourgogne-franche-comte",
                "bretagne",
                "centre-val-de-loire",
                "corse",
                "grand-est",
                "hauts-de-france",
                "ile-de-france",
                "normandie",
                "nouvelle-aquitaine",
                "occitanie",
                "pays-de-la-loire",
                "provence-alpes-cote-d-azur",
                "guadeloupe",
                "martinique",
                "guyane",
                "la-reunion",
                "mayotte"
              ],
              "enumTitles": [
                "Auvergne-Rhône-Alpes",
                "Bourgogne-Franche-Comté",
                "Bretagne",
                "Centre-Val de Loire",
                "Corse",
                "Grand Est",
                "Hauts-de-France",
                "Île-de-France",
                "Normandie",
                "Nouvelle-Aquitaine",
                "Occitanie",
                "Pays de la Loire",
                "Provence-Alpes-Côte d'Azur",
                "Guadeloupe",
                "Martinique",
                "Guyane",
                "La Réunion",
                "Mayotte"
              ]
            }
          },
          "postalCodes": {
            "title": "France: postal codes",
            "type": "array",
            "description": "Only companies at these postal codes, one per line, e.g. 75009. Search mode: an establishment there. newCompanies mode: the registered office.",
            "items": {
              "type": "string"
            }
          },
          "legalForms": {
            "title": "France: legal forms (INSEE codes)",
            "type": "array",
            "description": "Only these INSEE legal forms (catégorie juridique, 4 digits), one per line, e.g. 5710 (SAS), 5499 (SARL), 5599 (SA), 9220 (association). Sole traders (1000) are never returned.",
            "items": {
              "type": "string"
            }
          },
          "sizeCategories": {
            "title": "France: company size",
            "type": "array",
            "description": "Only French companies in these INSEE size categories: PME (SME), ETI (mid-size), GE (large). Leave empty (the default) for any size.",
            "items": {
              "type": "string",
              "enum": [
                "PME",
                "ETI",
                "GE"
              ],
              "enumTitles": [
                "PME (SME)",
                "ETI (mid-size)",
                "GE (large)"
              ]
            }
          },
          "employeeRanges": {
            "title": "France: employee ranges (INSEE codes)",
            "type": "array",
            "description": "Only French companies in these INSEE employee ranges, one code per line: 00 (none at year end), 01 (1-2), 02 (3-5), 03 (6-9), 11 (10-19), 12 (20-49), 21 (50-99), 22 (100-199), 31 (200-249), 32 (250-499), 41 (500-999), 42 (1,000-1,999), 51 (2,000-4,999), 52 (5,000-9,999), 53 (10,000+), NN (non-employer).",
            "items": {
              "type": "string"
            }
          },
          "revenueMin": {
            "title": "France: minimum revenue (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only French companies whose latest published revenue (chiffre d'affaires) is at least this many euros. Companies that don't publish accounts are left out by this filter."
          },
          "revenueMax": {
            "title": "France: maximum revenue (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only French companies whose latest published revenue is at most this many euros."
          },
          "countries": {
            "title": "LEI: countries",
            "type": "array",
            "description": "Only LEI records whose legal address is in these countries, ISO 3166 two-letter codes, one per line, e.g. DE, GB, US. Any LEI filter limits the search to the Global LEI Index.",
            "items": {
              "type": "string"
            }
          },
          "entityCategories": {
            "title": "LEI: entity categories",
            "type": "array",
            "description": "Only LEI records in these categories. Sole proprietors are never returned.",
            "items": {
              "type": "string",
              "enum": [
                "GENERAL",
                "BRANCH",
                "FUND",
                "RESIDENT_GOVERNMENT_ENTITY",
                "INTERNATIONAL_ORGANIZATION"
              ],
              "enumTitles": [
                "General (companies and other legal entities)",
                "Branch",
                "Fund",
                "Government entity",
                "International organization"
              ]
            }
          },
          "leiRegistrationStatus": {
            "title": "LEI: registration status",
            "type": "array",
            "description": "Only LEIs with these registration statuses, e.g. LAPSED to find LEIs that weren't renewed.",
            "items": {
              "type": "string",
              "enum": [
                "ISSUED",
                "LAPSED",
                "PENDING_TRANSFER",
                "PENDING_ARCHIVAL",
                "DUPLICATE",
                "RETIRED",
                "ANNULLED",
                "MERGED",
                "TRANSFERRED",
                "CANCELLED"
              ]
            }
          },
          "sinceDays": {
            "title": "New companies: days to look back",
            "minimum": 1,
            "maximum": 31,
            "type": "integer",
            "description": "newCompanies mode only: on a first run (or with onlyNew off), read the BODACC issues published in the last N days, 1 to 31, default 3 (1 = today's issue only). With onlyNew, later runs read every issue since the last run instead, up to 31 days back.",
            "default": 3
          },
          "onlyNew": {
            "title": "New companies: only new since the last run",
            "type": "boolean",
            "description": "newCompanies mode only, default true: remember (in your account, per filter combination) which companies were already returned and which BODACC issue was read last, so a scheduled run returns and charges each company once, and holds companies whose NAF isn't known yet for a retry. False: every run reads the last sinceDays days and returns everything in them.",
            "default": true
          },
          "maxNafLookups": {
            "title": "New companies: max NAF lookups per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "newCompanies mode with activityCodes/activitySections only: at most this many companies are looked up in the French register for their NAF code per run, 1 to 1000, default 300 (about 3 minutes). Companies past the cap aren't charged and are held for the next run.",
            "default": 300
          },
          "maxResults": {
            "title": "Max results per run",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many companies in total across all inputs and registers, e.g. 20. Minimum 1; leave empty (the default) for no limit. The run also stops cleanly at the maximum cost per run you set in the run options, whichever comes first. Set it to keep a run small and quick."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}