{
  "openapi": "3.0.1",
  "info": {
    "title": "Capeb Scraper",
    "description": "Extract comprehensive data from CAPEB (Confédération de l'Artisanat et des Petites Entreprises du Bâtiment) API. Scrapes all French construction trades companies with parallel processing for fast extraction. Supports filtering by trade (plumber, electrician, mason, etc.) or extracting all companies.",
    "version": "1.0",
    "x-build-id": "MCof76czbsxPlBGX8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/corent1robert~capeb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-corent1robert-capeb-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/corent1robert~capeb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-corent1robert-capeb-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/corent1robert~capeb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-corent1robert-capeb-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": {
          "filterActivities": {
            "title": "Filter by Trades",
            "type": "array",
            "description": "Select trades to filter. Choose 'Tous les métiers' (or leave empty) = ALL trades (recommended for complete extraction). Or select specific trades from the dropdown. The scraper checks both main and secondary activities. Example: Select 'plombier' and 'électricien' to get only plumbers and electricians.",
            "items": {
              "type": "string",
              "enum": [
                "all",
                "plombier",
                "carreleur",
                "charpentier",
                "couvreur",
                "électricien",
                "maçon",
                "menuisier",
                "peintre",
                "plâtrier",
                "serrurier",
                "vitrier",
                "agenceur",
                "entreprise générale",
                "installateur de cheminée",
                "isolation",
                "revêtement de sol",
                "peintre intérieur",
                "peintre extérieur"
              ],
              "enumTitles": [
                "Tous les métiers (aucun filtre)",
                "Plombier",
                "Carreleur",
                "Charpentier",
                "Couvreur",
                "Électricien",
                "Maçon",
                "Menuisier",
                "Peintre",
                "Plâtrier",
                "Serrurier",
                "Vitrier",
                "Agenceur",
                "Entreprise générale",
                "Installateur de cheminée",
                "Isolation",
                "Revêtement de sol",
                "Peintre intérieur",
                "Peintre extérieur"
              ]
            },
            "default": [
              "all"
            ]
          },
          "limit": {
            "title": "Results Per Page",
            "minimum": 10,
            "maximum": 200,
            "type": "integer",
            "description": "Number of results per page (default: 100). Higher values = fewer requests = faster scraping. Recommended: 100 for speed.",
            "default": 100
          },
          "maxPages": {
            "title": "Maximum Pages",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of pages to scrape. Set to 0 to scrape all available pages (unlimited).",
            "default": 0
          },
          "concurrency": {
            "title": "Parallel Page Requests",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Number of parallel page requests to make simultaneously (default: 20). Higher = faster but more server load. Recommended: 20-30.",
            "default": 20
          },
          "enrichConcurrency": {
            "title": "Parallel Enrichment Requests",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Number of parallel enrichment requests for missing emails (default: 30). Higher = faster enrichment. Recommended: 30-50.",
            "default": 30
          },
          "enableEnrichment": {
            "title": "Enable Email Enrichment",
            "type": "boolean",
            "description": "If enabled, makes additional requests to find missing emails. Disable for maximum speed (default: true).",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}