cea-building-permits
by ceadigital
README.md
# Building Permits & Code Violations Scraper + Owner Skip Trace (Python CLI, SDK & MCP Server)
[](https://apify.com/cea_digital/building-permits-code-violations-scraper)
[](https://ceadigital.io/tools)
[](https://ceadigital.io/templates/postman-collection.json)
[](https://smithery.ai/server/@ceadigital/building-permits-code-violations-scraper)
[](https://glama.ai/mcp/servers/@ceadigital/building-permits-code-violations-scraper)
[](https://ceadigital.io/tools)
Extract live **municipal building permits** (`commercial_ti`, `solar`, `roofing`, `adu_addition`) and **code enforcement violations / pre-foreclosure liens** from Socrata & ArcGIS Open Data portals (Austin, Chicago, Los Angeles, NYC, Charleston, Miami, Phoenix), automatically **pierce anonymous LLC owners to wireless mobile phones & deliverable emails**, and screen **General Contractor licenses + U.S. Treasury OFAC SDN compliance** over pure HTTP (`Accept-Encoding: gzip, deflate`, zero headless browser).
---
## 1-Click Ecosystem & No-Code Integrations
| Platform / Channel | Direct Link |
| :--- | :--- |
| **Direct $29/mo Stripe API Key & $2 Tripwire Pass (Free 1-Row Preview)** | **[https://ceadigital.io/tools](https://ceadigital.io/tools)** |
| **Apify Store Actor (`cea_digital/building-permits-code-violations-scraper`)** | **[https://apify.com/cea_digital/building-permits-code-violations-scraper](https://apify.com/cea_digital/building-permits-code-violations-scraper)** |
| **Run in Postman (Public Collection v2.1)** | **[https://ceadigital.io/templates/postman-collection.json](https://ceadigital.io/templates/postman-collection.json)** |
| **1-Click Google Sheets Custom Function (`=PERMITSKIP(A2, "solar", 15000)`)** | **[https://ceadigital.io/templates/Code.gs](https://ceadigital.io/templates/Code.gs)** |
| **1-Click n8n Native Workflow Template (`.workflow.json`)** | **[https://ceadigital.io/templates/building-permits-code-violations-scraper.workflow.json](https://ceadigital.io/templates/building-permits-code-violations-scraper.workflow.json)** |
| **Clay.com HTTP API Column Blueprints** | **[https://ceadigital.io/templates/clay-http-column-blueprints.json](https://ceadigital.io/templates/clay-http-column-blueprints.json)** |
| **Smithery MCP Registry** | **[https://smithery.ai/server/@ceadigital/building-permits-code-violations-scraper](https://smithery.ai/server/@ceadigital/building-permits-code-violations-scraper)** |
| **Glama MCP Server Directory** | **[https://glama.ai/mcp/servers/@ceadigital/building-permits-code-violations-scraper](https://glama.ai/mcp/servers/@ceadigital/building-permits-code-violations-scraper)** |
---
## Quickstart #1 — Direct Unified API Key (`https://ceadigital.io/tools`)
Use one **`cea_live_`** Unified API Key (**$2.00 One-Time 100-Hit Tripwire Pass** or **$29/mo Growth Plan for 5,000 hits**) across all 4 CEA Digital tools:
```bash
export CEA_API_KEY="cea_live_your_key_here"
python permits_cli.py \
--city "Austin, TX" \
--permit-type commercial_ti \
--min-job-value 25000 \
--screen-contractor-kyb
```
Or via `curl`:
```bash
curl -sS -X POST "https://ceadigital.io/v1/tools/building-permits-code-violations-scraper" \
-H "Authorization: Bearer $CEA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"citiesOrZips": ["Austin, TX", "Chicago, IL"],
"permitTypes": ["commercial_ti", "code_violation"],
"minJobValueUsd": 25000,
"autoSkipTraceOwner": true,
"screenContractorKyb": true
}' | jq .
```
---
## Quickstart #2 — Apify Store (`cea_digital/building-permits-code-violations-scraper`)
Run on Apify Pay-Per-Event (`$0.004/permit` on Bronze+ plans, `$0.00` on misses or below `minJobValueUsd`) or chain directly to `maxcopell/zillow-detail-scraper` / `compass/crawler-google-places` via `zillowOrMapsDatasetId`:
```bash
export APIFY_TOKEN="apify_api_your_token_here"
python permits_cli.py \
--apify \
--city "Austin, TX" \
--permit-type solar
```
```bash
curl -sS -X POST "https://api.apify.com/v2/acts/cea_digital~building-permits-code-violations-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"citiesOrZips": ["Austin, TX"],
"permitTypes": ["solar", "roofing"],
"minJobValueUsd": 15000,
"autoSkipTraceOwner": true
}' | jq .
```
---
## Quickstart #3 — Model Context Protocol (MCP) for Claude, Cursor, Smithery & Glama
### Remote Streamable-HTTP MCP (Zero Install)
```bash
claude mcp add --transport http ceadigital-b2a https://ceadigital.io/mcp
```
### Smithery 1-Click Install
```bash
npx -y @smithery/cli install @ceadigital/building-permits-code-violations-scraper --client claude
```
### Local Stdio MCP Server (`mcp_server.py`)
```json
{
"mcpServers": {
"cea-building-permits": {
"command": "python3",
"args": ["/path/to/building-permits-code-violations-scraper/mcp_server.py"],
"env": {
"CEA_API_KEY": "cea_live_optional_key_or_blank_for_free_preview"
}
}
}
}
```
---
## License
MIT License — Copyright (c) 2026 CEA Digital ([ceadigital.io](https://ceadigital.io))
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo recent community issues