{
  "openapi": "3.0.1",
  "info": {
    "title": "Building Permits Scraper: City Open Data | $1/1K",
    "description": "$1 per 1,000 results, platform usage included. Issued building permits from the open data portals of 13 US cities and counties (NYC, Chicago, Los Angeles, Austin, Seattle and more): permit number, type, value, address, contractor, dates. No key.",
    "version": "0.1",
    "x-build-id": "oaaZLiHpkC37nTfSu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/one_dollar_store~city-building-permits-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-one_dollar_store-city-building-permits-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/one_dollar_store~city-building-permits-scraper/runs": {
      "post": {
        "operationId": "runs-sync-one_dollar_store-city-building-permits-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/one_dollar_store~city-building-permits-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-one_dollar_store-city-building-permits-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": {
          "cities": {
            "title": "Cities and counties",
            "type": "array",
            "description": "Which open data portals to read. Each one is a different city or county dataset of issued permits; the actor maps all of them to the same fields.",
            "items": {
              "type": "string",
              "enum": [
                "new-york-ny",
                "chicago-il",
                "los-angeles-ca",
                "austin-tx",
                "seattle-wa",
                "san-francisco-ca",
                "orlando-fl",
                "cincinnati-oh",
                "new-orleans-la",
                "baton-rouge-la",
                "mesa-az",
                "montgomery-county-md-commercial",
                "montgomery-county-md-residential",
                "prince-georges-county-md"
              ],
              "enumTitles": [
                "New York, NY",
                "Chicago, IL",
                "Los Angeles, CA",
                "Austin, TX",
                "Seattle, WA",
                "San Francisco, CA",
                "Orlando, FL",
                "Cincinnati, OH",
                "New Orleans, LA",
                "Baton Rouge, LA",
                "Mesa, AZ",
                "Montgomery County, MD (commercial)",
                "Montgomery County, MD (residential)",
                "Prince George's County, MD"
              ]
            },
            "default": [
              "austin-tx",
              "seattle-wa"
            ]
          },
          "dateFrom": {
            "title": "Issued from",
            "type": "string",
            "description": "Earliest issue date, as 2026-09-01. Leave empty to use the 30 days before the end date."
          },
          "dateTo": {
            "title": "Issued until",
            "type": "string",
            "description": "Latest issue date, as 2026-09-30. Leave empty for today."
          },
          "searchTerms": {
            "title": "Words in the description",
            "type": "array",
            "description": "Keep only permits whose description contains one of these words, one per line, for example solar or roof. Not case sensitive.",
            "items": {
              "type": "string"
            }
          },
          "minValuation": {
            "title": "Smallest project value (USD)",
            "type": "number",
            "description": "Only permits with a stated value of at least this much. Permits without a stated value are left out when this is set."
          },
          "maxValuation": {
            "title": "Largest project value (USD)",
            "type": "number",
            "description": "Only permits with a stated value of at most this much."
          },
          "maxItemsPerCity": {
            "title": "Results per city",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Optional cap for each city, so the first city cannot use the whole run. 0 means no extra cap.",
            "default": 0
          },
          "includeRaw": {
            "title": "Include the city's own fields",
            "type": "boolean",
            "description": "Adds a raw object with the portal's original columns (up to 60 fields, long text cut at 200 characters).",
            "default": false
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 10,
            "maximum": 100000,
            "type": "integer",
            "description": "The run stops after this many permits in total. Minimum 10.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}