{
  "openapi": "3.0.1",
  "info": {
    "title": "French Company Register Search — SIREN, NAF, Directors, Revenue",
    "description": "Search every company registered in France through the government's own open register: by name, SIREN, SIRET, department, postcode, NAF activity, legal form, size band or revenue. Returns the headquarters address with coordinates, the readable activity and size labels, the latest filed.",
    "version": "0.1",
    "x-build-id": "jQ4sfaaNVdvs1yjbx"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/dalbian~french-company-register-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-dalbian-french-company-register-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/dalbian~french-company-register-search/runs": {
      "post": {
        "operationId": "runs-sync-dalbian-french-company-register-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/dalbian~french-company-register-search/run-sync": {
      "post": {
        "operationId": "run-sync-dalbian-french-company-register-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": {
          "queries": {
            "title": "Search terms",
            "type": "array",
            "description": "One search per line. A company name, a trading name, an address fragment, or a bare SIREN (9 digits) or SIRET (14 digits) for a direct lookup. Leave the filters below empty and this searches the whole of France; combine it with a department or a NAF code to build a prospecting list.",
            "default": [
              "boulangerie"
            ],
            "items": {
              "type": "string"
            }
          },
          "sirens": {
            "title": "SIREN or SIRET numbers",
            "type": "array",
            "description": "Direct lookups, one identifier per line. A SIREN is the 9-digit company number; a SIRET is the 14-digit establishment number. Spaces and dots are stripped. Each one returns exactly one company or none, and the filters below are not applied to it.",
            "items": {
              "type": "string"
            }
          },
          "department": {
            "title": "Department",
            "type": "string",
            "description": "French department code: two digits (75 for Paris, 69 for Rhone), 2A or 2B for Corsica, three digits for the overseas departments (971 Guadeloupe, 974 Reunion). Several are allowed, comma-separated. This filters on establishments, so a company headquartered elsewhere is returned when it has a site in the department."
          },
          "postcode": {
            "title": "Postcode",
            "type": "string",
            "description": "Five-digit postcode, comma-separated for several. Like the department, this filters on establishments rather than on the headquarters alone."
          },
          "nafSection": {
            "title": "Activity section",
            "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": "The broad activity section, the first level of the French NAF classification. Use this when you want a whole sector; use the NAF code below when you want one trade."
          },
          "nafCode": {
            "title": "NAF activity code",
            "type": "string",
            "description": "Exact NAF (APE) code such as 10.71C for bakeries, 71.12B for engineering consultancy or 62.01Z for software development. Comma-separated for several. Narrower and far more useful than the section for prospecting."
          },
          "legalStatus": {
            "title": "Legal form code",
            "type": "string",
            "description": "INSEE legal category code, comma-separated for several. The common ones are 5710 (SAS), 5499 (SARL), 5720 (SASU), 5498 (EURL), 1000 (sole trader), 9220 (association) and 6540 (property partnership, SCI)."
          },
          "companyCategory": {
            "title": "Company size category",
            "enum": [
              "PME",
              "ETI",
              "GE"
            ],
            "type": "string",
            "description": "INSEE's official company size category, computed by INSEE from headcount, turnover and balance-sheet total. Coarser than the employee band but stated by the statistics office rather than derived."
          },
          "employeeRange": {
            "title": "Employee band",
            "enum": [
              "NN",
              "00",
              "01",
              "02",
              "03",
              "11",
              "12",
              "21",
              "22",
              "31",
              "32",
              "41",
              "42",
              "51",
              "52",
              "53"
            ],
            "type": "string",
            "description": "INSEE employee band of the company. The code is what the register stores; the readable band is written back into every row as employeeRange. The figure is two to three years behind, which is how INSEE publishes it."
          },
          "activeOnly": {
            "title": "Active companies only",
            "type": "boolean",
            "description": "Keep only companies whose administrative state is A (active). Turn this off to include state C (ceased) — companies struck off, wound up or merged away. Without this filter the register returns both, so leaving it on is what you usually want.",
            "default": true
          },
          "minRevenue": {
            "title": "Minimum revenue (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Filter on the latest filed turnover. Only companies that actually filed accounts can match, and that is well under half the register, so this silently excludes every company with no published figures."
          },
          "maxRevenue": {
            "title": "Maximum revenue (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on the latest filed turnover. Same caveat as the minimum: companies with no filed accounts are excluded rather than treated as zero."
          },
          "latitude": {
            "title": "Latitude (geographic search)",
            "type": "number",
            "description": "Centre point of a radius search. Set latitude, longitude and radius together to search around a location instead of by text. Geographic search accepts only the activity section and NAF code filters — department, size and revenue are ignored."
          },
          "longitude": {
            "title": "Longitude (geographic search)",
            "type": "number",
            "description": "Longitude of the centre point. Required with latitude."
          },
          "radiusKm": {
            "title": "Radius in kilometres",
            "minimum": 0.001,
            "maximum": 50,
            "type": "number",
            "description": "Search radius around the centre point, from 0.001 km to 50 km. A company matches when any of its establishments falls inside the circle, so a national chain can be returned with its headquarters far outside it.",
            "default": 5
          },
          "includeDirectors": {
            "title": "Include directors",
            "type": "boolean",
            "description": "Add one row per company officer recorded in the national business register (RNE): surname, first names, role, nationality and year of birth. This is published French open data about people acting in a business capacity. Day and month of birth are deliberately dropped. If you keep or reuse these rows you are the data controller for them.",
            "default": true
          },
          "includeEstablishments": {
            "title": "Include establishments",
            "type": "boolean",
            "description": "Add one row per establishment that matched the search, with its SIRET, address, coordinates and open or closed state. These are the sites the register matched, not the company's full site list; a direct SIREN lookup returns only the headquarters.",
            "default": false
          },
          "maxResultsPerQuery": {
            "title": "Maximum companies per search",
            "minimum": 1,
            "maximum": 6000,
            "type": "integer",
            "description": "Cap on companies returned per search term. The register refuses to page beyond 10 000 results per search whatever this is set to, so narrow by department or NAF code rather than raising it.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}