{
  "openapi": "3.0.1",
  "info": {
    "title": "France Companies Scraper",
    "description": "Scrape France's SIRENE and RNE company register with no API key. Search 30M companies by name, director, location, NAF code, revenue range or certificationsn look up SIREN/SIRET in batch; or list companies near a GPS point. Clean rows with directors and multi-year revenue and net income.",
    "version": "1.0",
    "x-build-id": "6qBtuMaPLBfvvtgpU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/normdata~france-companies-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-normdata-france-companies-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/normdata~france-companies-scraper/runs": {
      "post": {
        "operationId": "runs-sync-normdata-france-companies-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/normdata~france-companies-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-normdata-france-companies-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": {
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Caps how many company rows this run writes. Starts at 10 for a quick sample; raise it for a full run."
          },
          "mode": {
            "title": "What to do",
            "enum": [
              "search",
              "lookup",
              "near"
            ],
            "type": "string",
            "description": "Search filters the whole registry. Look up takes exact SIREN or SIRET numbers. Near returns companies with an establishment within a radius of a GPS point.",
            "default": "search"
          },
          "query": {
            "title": "Company or director name (for Search)",
            "type": "string",
            "description": "Full-text search over company name, trade name, address and directors. Most relevant matches come first. Leave empty to search the whole registry with the filters below, or use Look up mode for an exact number."
          },
          "department": {
            "title": "Department code (for Search)",
            "type": "string",
            "description": "Two or three-digit French department, e.g. 75 (Paris), 13 (Bouches-du-Rhone), 2A (Corse-du-Sud), 971 (Guadeloupe). Matches companies with at least one establishment there; the head office may be elsewhere (see the establishments array)."
          },
          "region": {
            "title": "Region (for Search)",
            "enum": [
              "",
              "84",
              "27",
              "53",
              "24",
              "94",
              "44",
              "32",
              "11",
              "28",
              "75",
              "76",
              "52",
              "93",
              "01",
              "02",
              "03",
              "04",
              "06"
            ],
            "type": "string",
            "description": "Administrative region. Like the department filter, this matches on establishments.",
            "default": ""
          },
          "communeCode": {
            "title": "Commune code (INSEE) (for Search)",
            "type": "string",
            "description": "Five-character INSEE commune code (not the postal code), e.g. 75056 for Paris, 69123 for Lyon."
          },
          "postalCode": {
            "title": "Postal code (for Search)",
            "type": "string",
            "description": "Five-digit French postal code. Like the department filter, this matches on establishments."
          },
          "nafCode": {
            "title": "NAF / APE activity code (for Search and Near)",
            "type": "string",
            "description": "Full NAF (APE) code, e.g. 62.01Z for computer programming, 10.71C for bakeries. Must be the complete 5-character code. For a whole sector, use the NAF section field instead."
          },
          "nafSection": {
            "title": "NAF section (for Search and Near)",
            "enum": [
              "",
              "A",
              "B",
              "C",
              "D",
              "E",
              "F",
              "G",
              "H",
              "I",
              "J",
              "K",
              "L",
              "M",
              "N",
              "O",
              "P",
              "Q",
              "R",
              "S",
              "T",
              "U"
            ],
            "type": "string",
            "description": "Whole NAF sector. Use this instead of a code to keep a broad segment.",
            "default": ""
          },
          "legalForm": {
            "title": "Legal form code (for Search)",
            "type": "string",
            "description": "INSEE legal category code: 5710 SAS, 5720 SASU, 5499 or 5410 SARL, 5426 EURL, 5510 SA, 6540 SCI, 5202 SNC, 1000 sole trader, 9220 declared association, 9260 foundation."
          },
          "companyCategory": {
            "title": "Company size category (for Search)",
            "enum": [
              "any",
              "PME",
              "ETI",
              "GE"
            ],
            "type": "string",
            "description": "INSEE size class."
          },
          "employeeRange": {
            "title": "Employee band (for Search)",
            "enum": [
              "",
              "00",
              "01",
              "02",
              "03",
              "11",
              "12",
              "21",
              "22",
              "31",
              "32",
              "41",
              "42",
              "51",
              "52",
              "53"
            ],
            "type": "string",
            "description": "INSEE headcount band of the company.",
            "default": ""
          },
          "revenueMin": {
            "title": "Minimum revenue in EUR (for Search)",
            "minimum": 0,
            "type": "integer",
            "description": "Only companies with filed turnover at or above this. Non-filers (many sole traders and associations) are excluded when this is set."
          },
          "revenueMax": {
            "title": "Maximum revenue in EUR (for Search)",
            "minimum": 0,
            "type": "integer",
            "description": "Only companies with filed turnover at or below this."
          },
          "netResultMin": {
            "title": "Minimum net income in EUR (for Search)",
            "type": "integer",
            "description": "Only companies with filed net income at or above this. Can be negative."
          },
          "netResultMax": {
            "title": "Maximum net income in EUR (for Search)",
            "type": "integer",
            "description": "Only companies with filed net income at or below this. Can be negative."
          },
          "status": {
            "title": "Administrative status (for Search)",
            "enum": [
              "any",
              "active",
              "ceased"
            ],
            "type": "string",
            "description": "Filter by whether the legal unit is still active."
          },
          "personName": {
            "title": "Director last name (for Search)",
            "type": "string",
            "description": "Last name of a director, officer or elected representative. Returns every company where that person is on record."
          },
          "personFirstName": {
            "title": "Director first name (for Search)",
            "type": "string",
            "description": "First name to go with the director last name."
          },
          "personBornAfter": {
            "title": "Director born on or after (for Search)",
            "type": "string",
            "description": "YYYY-MM-DD or YYYY. Narrows a director search to people born on or after this date."
          },
          "personBornBefore": {
            "title": "Director born on or before (for Search)",
            "type": "string",
            "description": "YYYY-MM-DD or YYYY. Narrows a director search to people born on or before this date."
          },
          "labels": {
            "title": "Certifications and labels (for Search)",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep only companies that carry every selected label.",
            "items": {
              "type": "string",
              "enum": [
                "association",
                "ess",
                "rge",
                "bio",
                "qualiopi",
                "mission",
                "training",
                "siae",
                "epv",
                "individual",
                "collectivite"
              ],
              "enumTitles": [
                "Association",
                "ESS (social and solidarity economy)",
                "RGE (green building)",
                "Organic (Agence Bio)",
                "Qualiopi (training quality)",
                "Societe a mission",
                "Registered training body",
                "SIAE (work integration)",
                "EPV (living heritage)",
                "Sole trader",
                "Local authority"
              ]
            }
          },
          "sortBySize": {
            "title": "Sort by size (for Search)",
            "type": "boolean",
            "description": "Return the biggest companies (most establishments) first instead of by relevance.",
            "default": false
          },
          "ids": {
            "title": "SIREN or SIRET numbers (for Look up)",
            "type": "array",
            "description": "Nine-digit SIREN or fourteen-digit SIRET numbers. Spaces and dots are stripped.",
            "items": {
              "type": "string"
            }
          },
          "latitude": {
            "title": "Latitude (for Near)",
            "type": "string",
            "description": "Decimal latitude of the centre point, e.g. 48.8566 for Paris."
          },
          "longitude": {
            "title": "Longitude (for Near)",
            "type": "string",
            "description": "Decimal longitude of the centre point, e.g. 2.3522 for Paris."
          },
          "radiusKm": {
            "title": "Radius in km (for Near)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Search radius around the point, 1 to 50 km. Also accepts the NAF code or section fields above.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}