{
  "openapi": "3.0.1",
  "info": {
    "title": "Austin Building Permits Scraper",
    "description": "Scrape the City of Austin issued construction permits dataset (Building, Electrical, Mechanical, Plumbing, Driveway/Sidewalk). Filter by type, class, status, jurisdiction, district, valuation, or date; lookup by permit number, address, contractor, or TCAD ID. Free Socrata API, no login.",
    "version": "1.0",
    "x-build-id": "4A5MBc3zjteykPw95"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~austin-building-permits-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-austin-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/crawlerbros~austin-building-permits-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-austin-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/crawlerbros~austin-building-permits-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-austin-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "byPermitNumber",
              "byAddress",
              "byContractor",
              "byTcadId",
              "byMasterPermitNumber"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Full-text search",
            "type": "string",
            "description": "Free-text search across permit description, address, contractor, and other text fields (mode=search). Leave blank to browse without a text query."
          },
          "descriptionKeyword": {
            "title": "Description contains",
            "type": "string",
            "description": "Case-insensitive substring match on the permit's work description. Example: `pool`."
          },
          "permitNumbers": {
            "title": "Permit numbers (mode=byPermitNumber)",
            "type": "array",
            "description": "Exact City of Austin permit numbers to fetch. Example: `2026-077081 DS`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "streetAddress": {
            "title": "Street address (mode=byAddress)",
            "type": "string",
            "description": "Property street address to search for (partial, case-insensitive match). Example: `912 Bastrop Hwy`."
          },
          "tcadIds": {
            "title": "TCAD property IDs (mode=byTcadId)",
            "type": "array",
            "description": "Exact Travis Central Appraisal District (TCAD) property IDs to fetch permits for. Example: `0307200403`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "masterPermitNumbers": {
            "title": "Master permit numbers (mode=byMasterPermitNumber)",
            "type": "array",
            "description": "Exact master permit numbers to fetch all sub-permits for (multiple trade/phase permits filed under one master project). Example: `12674346`.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "contractorName": {
            "title": "Contractor name (mode=byContractor)",
            "type": "string",
            "description": "Contractor company or individual name to search for (partial, case-insensitive match against both company and full name). Example: `Engen Contracting`."
          },
          "permitType": {
            "title": "Permit type",
            "enum": [
              "",
              "BP",
              "EP",
              "MP",
              "PP",
              "DS"
            ],
            "type": "string",
            "description": "Filter to a single permit type.",
            "default": ""
          },
          "permitClassMapped": {
            "title": "Permit class (mapped)",
            "enum": [
              "",
              "Residential",
              "Commercial"
            ],
            "type": "string",
            "description": "Filter to Residential or Commercial permits.",
            "default": ""
          },
          "permitClass": {
            "title": "Permit class",
            "enum": [
              "",
              "C - Medical Gas",
              "C- 101 Single Family Houses",
              "C- 103 Two Family Bldgs",
              "C- 104 Three & Four Family Bldgs",
              "C- 105 Five or More Family Bldgs",
              "C- 106 Mixed Use",
              "C- 213 Hotels, Motels, & Tourist Cabins",
              "C- 214 Other Nonhousekeeping Shelter",
              "C- 318 Amusement, Social & Rec Bldgs",
              "C- 319 Churches and Othr Religious Bldgs",
              "C- 320 Industrial Bldgs",
              "C- 321 Pkg Garage Bldg & Open Deck",
              "C- 322 Service Station & Repair Garage",
              "C- 323 Hospital & Institutional Bldgs",
              "C- 324 Office, Bank & Professional Bldgs",
              "C- 325 Public Works & Utilities Bldgs",
              "C- 326 Schools & Other Educational Bldgs",
              "C- 327 Stores & Customer Services",
              "C- 328 Commercial Other Nonresident Bldg",
              "C- 329 Com Structures Other Than Bldg",
              "C- 437 Addn, Alter, Convn-NonRes",
              "C- 647 Demolition 3 and 4 Family Bldgs",
              "C- 648 Demolition 5 or More Family Bldgs",
              "C- 649 Demolition All Other Bldgs Com",
              "C-1000 Commercial Remodel",
              "C-1001 Commercial Finish Out",
              "C-1002 Commercial Remodel & Finish Out",
              "C-2000 Relocation Commercial",
              "C-2002 Commercial Boat Dock",
              "C-2003 Commercial Retaining Wall",
              "Com. Curb, Gutter",
              "Com. Driveway",
              "Com. Driveway & Sidewalk",
              "Com. Driveway, Curb, Gutter",
              "Com. Driveway,Sidewalk,Curb,Gutter",
              "Com. Sidewalk",
              "Com. Sidewalk, Curb, Gutter",
              "Commercial",
              "R- 101 Single Family Houses",
              "R- 102 Secondary Apartment",
              "R- 103 Two Family Bldgs",
              "R- 328 Resident Other Nonresident Bldg",
              "R- 329 Res Structures Other Than Bldg",
              "R- 330  Accessory Use to Primary",
              "R- 434 Addition & Alterations",
              "R- 435 Renovations/Remodel",
              "R- 436 Addn to increase housing units",
              "R- 437 Residential Boat Dock",
              "R- 438 Residential Garage/Carport Addn",
              "R- 438 Residential Retaining Wall",
              "R- 439 Addition Mobile Home",
              "R- 440 Connect Mobile Home",
              "R- 645 Demolition One Family Homes",
              "R- 646 Demolition Two Family Bldgs",
              "R- 649 Demolition All Other Bldgs Res",
              "R-2001 Relocation Residential",
              "Replace of Curb & Gutter",
              "Res. Curb, Gutter",
              "Res. Driveway",
              "Res. Driveway & Sidewalk",
              "Res. Driveway, Curb, Gutter",
              "Res. Driveway, Sidewalk, Curb, Gutter",
              "Res. Sidewalk",
              "Res. Sidewalk, Curb, Gutter",
              "Residential",
              "Sign Permit"
            ],
            "type": "string",
            "description": "Filter to a single detailed permit class code.",
            "default": ""
          },
          "workClass": {
            "title": "Work class",
            "enum": [
              "",
              "Addition",
              "Addition and Remodel",
              "Auxiliary Power",
              "Auxiliary Water",
              "Awning",
              "Billboard",
              "Change Out",
              "Cut Over/Tank Abandonment",
              "Demo",
              "Demolition",
              "Fireline",
              "Freestanding",
              "Grease Interceptor (GI) replacement",
              "Homebuilder Loop",
              "Interior Demo Non-Structural",
              "Irrigation",
              "Life Safety",
              "Modification",
              "New",
              "Plumbing Service Line",
              "Plumbing Utility Connection",
              "Projecting",
              "Relocation",
              "Remodel",
              "Remodel Mobile Home",
              "Repair",
              "Roof",
              "Shell",
              "Special Inspections Program",
              "Temporary  Loop",
              "Upgrade",
              "Wall"
            ],
            "type": "string",
            "description": "Filter to a single type of work being performed.",
            "default": ""
          },
          "status": {
            "title": "Status",
            "enum": [
              "",
              "Aborted",
              "Active",
              "Application Incomplete",
              "Awaiting Upload",
              "Cancelled",
              "Cancelled - Contractor Required",
              "Cancelled - New Permit Required",
              "Closed",
              "Denied but Closed",
              "Expired",
              "Expired - License",
              "Final",
              "Inactive Contractor",
              "Inactive Pending Revision",
              "New Permit Required",
              "On Hold",
              "Pending",
              "Pending Permit",
              "Re Review",
              "Rejected",
              "Revoked",
              "Suspended",
              "VOID",
              "Withdrawn"
            ],
            "type": "string",
            "description": "Filter to a single current permit status.",
            "default": ""
          },
          "jurisdiction": {
            "title": "Jurisdiction",
            "enum": [
              "",
              "AUSTIN 2 MILE ETJ",
              "AUSTIN 5 MILE ETJ",
              "AUSTIN FULL PURPOSE",
              "AUSTIN LTD",
              "BASTROP ETJ",
              "BEAR CREEK FULL PURPOSE",
              "BEE CAVE ETJ",
              "BEE CAVE FULL PURPOSE",
              "BRIARCLIFF ETJ",
              "BRIARCLIFF FULL PURPOSE",
              "CEDAR PARK ETJ",
              "CEDAR PARK FULL PURPOSE",
              "CREEDMOOR ETJ",
              "CREEDMOOR FULL PURPOSE",
              "LAGO VISTA ETJ",
              "LAKEWAY ETJ",
              "LAKEWAY FULL PURPOSE",
              "LEANDER FULL PURPOSE",
              "MANOR ETJ",
              "MANOR FULL PURPOSE",
              "MUSTANG RIDGE ETJ",
              "MUSTANG RIDGE FULL PURPOSE",
              "OTHER",
              "PFLUGERVILLE ETJ",
              "PFLUGERVILLE FULL PURPOSE",
              "POINT VENTURE FULL PURPOSE",
              "ROLLINGWOOD FULL PURPOSE",
              "ROUND ROCK ETJ",
              "ROUND ROCK FULL PURPOSE",
              "SAN LEANNA FULL PURPOSE",
              "SB 2038 ETJ RELEASE",
              "SUNSET VALLEY ETJ",
              "SUNSET VALLEY FULL PURPOSE",
              "THE HILLS FULL PURPOSE",
              "VOLENTE FULL PURPOSE",
              "WEST LAKE HILLS ETJ",
              "WEST LAKE HILLS FULL PURPOSE"
            ],
            "type": "string",
            "description": "Filter to a single governing jurisdiction.",
            "default": ""
          },
          "issueMethod": {
            "title": "Issuance method",
            "enum": [
              "",
              "Permit Center",
              "Online"
            ],
            "type": "string",
            "description": "Filter by how the permit was issued.",
            "default": ""
          },
          "councilDistrict": {
            "title": "Council district",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10"
            ],
            "type": "string",
            "description": "Filter to a single Austin City Council district (1-10).",
            "default": ""
          },
          "zipcode": {
            "title": "Zip code",
            "enum": [
              "",
              "78610",
              "78612",
              "78613",
              "78617",
              "78620",
              "78641",
              "78645",
              "78652",
              "78653",
              "78660",
              "78664",
              "78669",
              "78681",
              "78701",
              "78702",
              "78703",
              "78704",
              "78705",
              "78712",
              "78717",
              "78719",
              "78721",
              "78722",
              "78723",
              "78724",
              "78725",
              "78726",
              "78727",
              "78728",
              "78729",
              "78730",
              "78731",
              "78732",
              "78733",
              "78734",
              "78735",
              "78736",
              "78737",
              "78738",
              "78739",
              "78741",
              "78742",
              "78743",
              "78744",
              "78745",
              "78746",
              "78747",
              "78748",
              "78749",
              "78750",
              "78751",
              "78752",
              "78753",
              "78754",
              "78756",
              "78757",
              "78758",
              "78759"
            ],
            "type": "string",
            "description": "Filter to a single property zip code.",
            "default": ""
          },
          "city": {
            "title": "City",
            "enum": [
              "",
              "AUSTIN",
              "BASTROP",
              "BEAR CREEK",
              "BEE CAVE",
              "BRIARCLIFF",
              "BUDA",
              "CEDAR PARK",
              "CREEDMOOR",
              "DEL VALLE",
              "DRIPPING SPRINGS",
              "JONESTOWN",
              "LAGO VISTA",
              "LAKEWAY",
              "LEANDER",
              "MANCHACA",
              "MANOR",
              "MUSTANG RIDGE",
              "PFLUGERVILLE",
              "POINT VENTURE",
              "ROLLINGWOOD",
              "ROUND ROCK",
              "SAN LEANNA",
              "SPICEWOOD",
              "SUNSET VALLEY",
              "THE HILLS",
              "VOLENTE",
              "WEST LAKE HILLS",
              "WILLIAMSON COUNTY"
            ],
            "type": "string",
            "description": "Filter to a single property city.",
            "default": ""
          },
          "condominiumOnly": {
            "title": "Only condominium permits",
            "type": "boolean",
            "description": "Only include permits flagged as condominium projects.",
            "default": false
          },
          "certificateOfOccupancyOnly": {
            "title": "Only permits with certificate of occupancy",
            "type": "boolean",
            "description": "Only include permits that received a certificate of occupancy.",
            "default": false
          },
          "issuedInLast30DaysOnly": {
            "title": "Only permits issued in the last 30 days",
            "type": "boolean",
            "description": "Only include permits the city flagged as issued within the last 30 days (as of the dataset's own refresh, not the run time).",
            "default": false
          },
          "appliedDateFrom": {
            "title": "Applied date from (YYYY-MM-DD)",
            "type": "string",
            "description": "Drop permits applied before this date."
          },
          "appliedDateTo": {
            "title": "Applied date to (YYYY-MM-DD)",
            "type": "string",
            "description": "Drop permits applied after this date."
          },
          "issueDateFrom": {
            "title": "Issued date from (YYYY-MM-DD)",
            "type": "string",
            "description": "Drop permits issued before this date."
          },
          "issueDateTo": {
            "title": "Issued date to (YYYY-MM-DD)",
            "type": "string",
            "description": "Drop permits issued after this date."
          },
          "statusDateFrom": {
            "title": "Status change date from (YYYY-MM-DD)",
            "type": "string",
            "description": "Drop permits status change before this date."
          },
          "statusDateTo": {
            "title": "Status change date to (YYYY-MM-DD)",
            "type": "string",
            "description": "Drop permits status change after this date."
          },
          "minTotalJobValuation": {
            "title": "Min total job valuation (USD)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "number",
            "description": "Drop permits with a lower total job valuation than this."
          },
          "maxTotalJobValuation": {
            "title": "Max total job valuation (USD)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "number",
            "description": "Drop permits with a higher total job valuation than this."
          },
          "minTotalNewAddSqft": {
            "title": "Min new/added square footage",
            "minimum": 0,
            "maximum": 10000000,
            "type": "number",
            "description": "Drop permits with less new/added building square footage than this."
          },
          "maxTotalNewAddSqft": {
            "title": "Max new/added square footage",
            "minimum": 0,
            "maximum": 10000000,
            "type": "number",
            "description": "Drop permits with more new/added building square footage than this."
          },
          "nearLatitude": {
            "title": "Near latitude (mode=search)",
            "minimum": -90,
            "maximum": 90,
            "type": "number",
            "description": "Only include permits within `nearRadiusMeters` of this latitude/longitude point. Must be combined with Near longitude. Example: `30.2672` (downtown Austin)."
          },
          "nearLongitude": {
            "title": "Near longitude (mode=search)",
            "minimum": -180,
            "maximum": 180,
            "type": "number",
            "description": "Longitude for the geographic radius filter. Must be combined with Near latitude. Example: `-97.7431`."
          },
          "nearRadiusMeters": {
            "title": "Near radius (meters)",
            "minimum": 1,
            "maximum": 20000,
            "type": "number",
            "description": "Radius in meters around the Near latitude/longitude point. Only applies when both are set.",
            "default": 2000
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "issueDateDesc",
              "issueDateAsc",
              "appliedDateDesc",
              "appliedDateAsc",
              "statusDateDesc",
              "statusDateAsc",
              "totalJobValuationDesc",
              "totalJobValuationAsc"
            ],
            "type": "string",
            "description": "Sort order for results.",
            "default": "issueDateDesc"
          },
          "appToken": {
            "title": "Socrata app token (optional)",
            "type": "string",
            "description": "Optional free Socrata app token to raise API rate limits. Get one at https://data.austintexas.gov/profile/app_tokens. Not required — the actor works without it."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}