{
  "openapi": "3.0.1",
  "info": {
    "title": "Sirene / SIREN French Company Search — INSEE Register",
    "description": "Scrape French companies (entreprises) from the official French government open-data API: SIREN, SIRET, legal form, NAF activity, address, employees, executives and financials. French company register and business data by department, activity, size and creation date.",
    "version": "0.1",
    "x-build-id": "BesrEbq7PLwBRVJJL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/publicdata~sirene-siren-french-company-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-publicdata-sirene-siren-french-company-search",
        "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/publicdata~sirene-siren-french-company-search/runs": {
      "post": {
        "operationId": "runs-sync-publicdata-sirene-siren-french-company-search",
        "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/publicdata~sirene-siren-french-company-search/run-sync": {
      "post": {
        "operationId": "run-sync-publicdata-sirene-siren-french-company-search",
        "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 query",
            "type": "string",
            "description": "Company name, SIREN, SIRET, or keywords. Leave empty to browse using the filters below."
          },
          "sirenList": {
            "title": "Look up specific SIREN/SIRET",
            "type": "array",
            "description": "Exact identifiers to fetch (9-digit SIREN or 14-digit SIRET). This is a lookup mode, not a filter: when it is non-empty the Actor fetches exactly these identifiers and applies no other criterion, so query, departments, nafCodes, legalStatus, minEmployees and createdAfter are all ignored and a company that contradicts them is still returned and still charged. The run log names the filters it dropped. Identifiers the register does not resolve are named in the log and counted in the run's status message.",
            "items": {
              "type": "string"
            }
          },
          "departments": {
            "title": "Departments",
            "type": "array",
            "description": "French department codes to filter by, e.g. 75, 13, 2A. Empty = all France. The source matches a company when ANY of its establishments is in the department, so a company head-officed elsewhere can appear: the address columns describe the head office, and the matchedAddress / matchedCity / matchedPostalCode columns describe the establishment that matched.",
            "items": {
              "type": "string"
            }
          },
          "nafCodes": {
            "title": "NAF/APE activity codes",
            "type": "array",
            "description": "Activity codes, e.g. 47.11F (supermarkets), 62.01Z (software). Empty = all activities.",
            "items": {
              "type": "string"
            }
          },
          "legalStatus": {
            "title": "Company status",
            "enum": [
              "all",
              "active",
              "ceased"
            ],
            "type": "string",
            "description": "Restrict to active or ceased companies. \"All\" is not a criterion the source accepts on its own, so combine it with a query, a department, an activity code or an employee floor.",
            "default": "active"
          },
          "minEmployees": {
            "title": "Minimum employees",
            "type": "string",
            "description": "INSEE employee bracket floor. Leave empty for no minimum: any value here, 0 included, keeps only companies whose headcount bracket is published and drops every company whose bracket is NN (not disclosed), which was most of the result set in every search measured. Measured 2026-08-21: active software companies in Corsica (2A) are 202 unfiltered and 18 with minEmployees=0, because 184 of them are NN; restaurants in Lozere (48) go from 189 to 35, with 154 NN. When you do want a floor, the register publishes brackets rather than exact headcounts, so it must be a bracket boundary: 0, 1, 3, 6, 10, 20, 50, 100, 200, 250, 500, 1000, 2000, 5000 or 10000. Any larger number means the 10,000+ bracket, which is the largest the register has. A value in between (15, for instance) is refused with an explanatory error rather than silently rounded, because rounding up would drop the bracket that contains the headcount you asked for."
          },
          "createdAfter": {
            "title": "Created after (YYYY-MM-DD)",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Only companies created on or after this date (YYYY-MM-DD, a real calendar date; anything else is refused). The source API has no creation-date parameter, so the Actor reads the search results and filters them here. The source ranks results largest-company-first, never newest-first, and truncates any single search at 10,000 records, so a search that reports 10,000 matches is a partial view of it: narrow it until it reports fewer, and keep scanLimit at its 10,000 maximum. The source can also stop delivering short of the total it advertises; when that happens the run's status message says PARTIAL COVERAGE and gives the numbers."
          },
          "onlyWithExecutives": {
            "title": "Only with named executives",
            "type": "boolean",
            "description": "Keep only companies whose directors are published.",
            "default": false
          },
          "includeExecutives": {
            "title": "Include executives",
            "type": "boolean",
            "description": "Include directors and officers (names are published by the French register itself). Turn off if you only need company-level data.",
            "default": true
          },
          "maxItems": {
            "title": "Max results read",
            "minimum": 0,
            "type": "integer",
            "description": "Safety cap on the companies read from the source (0 = unlimited). With onlyWithExecutives on, companies dropped for having no published directors are read and counted against this cap without being exported, so the export can be smaller than the cap: query=carrefour with onlyWithExecutives and maxItems=5 exported 3 and skipped 2 (measured 2026-08-21). Only exported companies are charged, and the status message reports the skipped ones.",
            "default": 200
          },
          "scanLimit": {
            "title": "Records to scan when filtering by creation date",
            "minimum": 100,
            "maximum": 10000,
            "type": "integer",
            "description": "How many search results to read through while looking for companies that match `createdAfter`. Only matching companies are exported and charged. The source refuses to page beyond its 10,000-record ceiling, so 10,000 (the default) reads everything a single search can return; lower it to keep runs short.",
            "default": 10000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}