{
  "openapi": "3.0.1",
  "info": {
    "title": "European Construction Opportunity Intelligence",
    "description": "Find qualified construction opportunities from public permit data. Classify projects, detect commercial opportunities, and score leads by construction potential and data quality. France is currently supported, with additional European countries planned.",
    "version": "0.0",
    "x-build-id": "mvK6AoeN28v9YPfb9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/peposimao~european-construction-opportunity-intelligence/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-peposimao-european-construction-opportunity-intelligence",
        "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/peposimao~european-construction-opportunity-intelligence/runs": {
      "post": {
        "operationId": "runs-sync-peposimao-european-construction-opportunity-intelligence",
        "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/peposimao~european-construction-opportunity-intelligence/run-sync": {
      "post": {
        "operationId": "run-sync-peposimao-european-construction-opportunity-intelligence",
        "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",
        "required": [
          "country"
        ],
        "properties": {
          "country": {
            "title": "Country",
            "enum": [
              "France"
            ],
            "type": "string",
            "description": "Country to search.",
            "default": "France"
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Select a major French city or type any commune name.",
            "default": "Paris"
          },
          "projectFamilies": {
            "title": "Project Family",
            "type": "array",
            "description": "Optional. Filter by residential or non-residential projects. Leave empty to include both.",
            "items": {
              "type": "string",
              "enum": [
                "logement",
                "local"
              ],
              "enumTitles": [
                "Residential",
                "Non-residential"
              ]
            }
          },
          "projectSubtypes": {
            "title": "Project Subtype",
            "type": "array",
            "description": "Optional. Filter non-residential projects by subtype.",
            "items": {
              "type": "string",
              "enum": [
                "office",
                "retail_services",
                "hotel_accommodation",
                "industrial",
                "warehouse",
                "public_facility",
                "agricultural",
                "mixed_non_residential",
                "other_non_residential"
              ],
              "enumTitles": [
                "Office",
                "Retail / Services",
                "Hotel / Accommodation",
                "Industrial",
                "Warehouse",
                "Public Facility",
                "Agricultural",
                "Mixed Non-residential",
                "Other Non-residential"
              ]
            }
          },
          "permitKinds": {
            "title": "Permit Type",
            "type": "array",
            "description": "Optional. Filter by permit type. Leave empty to include all supported permit types.",
            "items": {
              "type": "string",
              "enum": [
                "PC",
                "DP"
              ],
              "enumTitles": [
                "PC - Construction permit",
                "DP - Prior declaration"
              ]
            }
          },
          "opportunityTypes": {
            "title": "Opportunity Types",
            "type": "array",
            "description": "Optional. Return only permits matching at least one selected commercial opportunity type. Leave empty to include all opportunity types.",
            "items": {
              "type": "string",
              "enum": [
                "general_contractor",
                "building_materials",
                "electrical",
                "plumbing",
                "hvac",
                "windows",
                "insulation",
                "roofing",
                "property_development_services",
                "construction_suppliers"
              ],
              "enumTitles": [
                "General contractor",
                "Building materials",
                "Electrical",
                "Plumbing",
                "HVAC",
                "Windows",
                "Insulation",
                "Roofing",
                "Property development services",
                "Construction suppliers"
              ]
            }
          },
          "minimumScore": {
            "title": "Minimum Construction Opportunity Score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Minimum construction opportunity score required for a permit to be returned. Higher values produce fewer, more selective results."
          },
          "minimumLeadQuality": {
            "title": "Minimum Lead Quality",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Minimum lead quality score required for a record to be returned. Higher values favor more complete and reliable leads."
          },
          "limit": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of qualified construction opportunities to return after applying the selected filters and score thresholds.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}