# Chicago and Seattle Building Permit Activity Brief (`jpmarketdata/us-two-city-building-permit-activity-brief`) Actor

Watch recently issued Chicago and Seattle building permits by work type, source-reported project cost and general area, with source-by-source coverage and privacy-safe rows.

- **URL**: https://apify.com/jpmarketdata/us-two-city-building-permit-activity-brief.md
- **Developed by:** [h ichi](https://apify.com/jpmarketdata) (community)
- **Categories:** Real estate, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 validated permit row exporteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Chicago and Seattle Building Permit Activity Brief

Prioritize follow-up research on recently issued construction permits using two official city data portals. Rows are issued activity signals, not open bids, contracts, or verified spending. The default scans both cities for seven complete calendar days in each city's local time zone, ending before today there, and source-reported project costs of at least $50,000.

### Input

Choose Chicago and/or Seattle, 1–30 complete city-local calendar days (default 7), a minimum source project cost (default $50,000), and a row cap (default 500).

### Output and coverage

One row per unique city and permit ID. Rows contain the source-local issue date, general work category, source permit type/status, reported or estimated cost with its basis, general area and an official record link. No names, contacts, street addresses, coordinates or raw work descriptions are exported. `OUTPUT` reports each city's local date interval, source counts, delivered rows and `coverageComplete`. A cap yields explicit partial coverage. Genuine zero matches are reported with scoped source counts; source failures fail the run. City source data may be corrected after a run. Chicago and Seattle costs are not equivalent actual spending.

### Limits

At most two source datasets, ten total requests, 180 seconds, 256 MB, and two-second source pacing. A cap is explicitly partial, and 403/429/timeouts/schema errors fail.

### Privacy

Only project-level, general-area permit facts are exported. Source owner/contractor/contact data, addresses, coordinates and descriptions are never retained or included.

### Source and rights

Sources: City of Chicago Building Permits (`ydr8-5enu`) and City of Seattle Building Permits (`76t5-zqzr`) public Socrata JSON endpoints. Seattle marks this dataset Public Domain. Chicago's [Data Terms of Use, USE OF DATA](https://www.chicago.gov/city/en/narr/foia/data_disclaimer.html) state: “Any user of this website providing any software application, or other secondary or derivative application using data supplied at this website shall do the following: Include the following disclaimer at the site where the software application, or other secondary or derivative application can be accessed or downloaded:”. The required disclaimer is:

> This site provides applications using data that has been modified for use from its original source, www.cityofchicago.org, the official website of the City of Chicago. The City of Chicago makes no claims as to the content, accuracy, timeliness, or completeness of any of the data provided at this site. The data provided at this site is subject to change at any time. It is understood that the data provided at this site is being used at one’s own risk.

Verify current robots and pace at least two seconds. No proxy, paid API, login, or raw-source retention.

### Pricing

One `permit-row-exported` primary event at $0.0015 per unique validated row delivered. No custom start or secondary event; coverage metadata and failed rows are uncharged. Platform memory start fees, if any, must be disclosed in Store copy.

# Actor input Schema

## `cities` (type: `array`):

One or both supported official permit datasets.

## `daysBack` (type: `integer`):

Number of complete calendar days before today in each source city time zone, scanned by city-local issue date.

## `minProjectCostUsd` (type: `integer`):

Chicago reported cost or Seattle estimated project cost; neither is actual spending.

## `maxItems` (type: `integer`):

Global cap; the Actor reports partial source coverage when counts exceed this value.

## Actor input object example

```json
{
  "cities": [
    "chicago",
    "seattle"
  ],
  "daysBack": 7,
  "minProjectCostUsd": 50000,
  "maxItems": 500
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "cities": [
        "chicago",
        "seattle"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpmarketdata/us-two-city-building-permit-activity-brief").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "cities": [
        "chicago",
        "seattle",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("jpmarketdata/us-two-city-building-permit-activity-brief").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "cities": [
    "chicago",
    "seattle"
  ]
}' |
apify call jpmarketdata/us-two-city-building-permit-activity-brief --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpmarketdata/us-two-city-building-permit-activity-brief"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ckT40WzwDIUudZAKe/builds/Njn0QxR0qu5vAz2nt/openapi.json
