# San Francisco Open Data Scraper (`parseforge/sf-open-data-scraper`) Actor

Scrape any San Francisco Open Data dataset via Socrata SODA API. Business registrations, restaurants, permits, parking, 311 calls, evictions and more. No API key required.

- **URL**: https://apify.com/parseforge/sf-open-data-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $25.72 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🌉 San Francisco Open Data Scraper

> 🚀 **Export any San Francisco Open Data dataset in seconds.** Tap **659 published datasets** including business registrations, restaurants, building permits, 311 cases, parking citations, evictions, police incidents, and more, via the official Socrata SODA API. No API key, no registration.

> 🕒 **Last updated:** 2026-05-13 · **📊 Native dataset schema** per record · **🗂️ 659 datasets** · **🌉 City and County of San Francisco** · **🔌 Socrata SODA API**

The **San Francisco Open Data Scraper** is a universal export tool for **every dataset on data.sfgov.org**. The City and County of San Francisco publishes **659 datasets** covering city operations, public safety, transportation, economy, environment, health, and culture. This Actor lets you pull any of them by passing the Socrata 4x4 dataset ID, optionally adding SoQL filters (`$where`, `$select`, `$order`, `$q`), and downloading the result as CSV, Excel, JSON, or XML.

The catalog spans **every major SF civic data set**, including building permits (`i98e-djp9`), registered businesses (`pyih-qa8i`), 311 service requests (`vw6y-z8j6`), parking citations (`5cei-gny5`), eviction notices (`tu7p-pa2g`), mobile food permits (`rqzj-sfat`), police incident reports (`wg3w-h783`), restaurant inspections, film locations, and historical crime statistics. Output preserves the dataset's native schema and appends three metadata fields: `_datasetId`, `_datasetUrl`, and `_scrapedAt`.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Civic researchers, journalists, prop-tech startups, GIS engineers, data scientists, public health analysts, real-estate firms, urban planners, students | Civic dashboards, FOIA-style export, permit/business/restaurant feeds, eviction and 311 monitoring, journalism investigations, ML training data on municipal events |

---

### 📋 What the SF Open Data Scraper does

Four filtering knobs map straight to Socrata SoQL:

- 🆔 **Dataset selector.** Pick any of **659 datasets** by 4x4 ID. Find IDs in the URL of any dataset page on `data.sfgov.org`.
- 🔍 **WHERE clause.** Standard SoQL `$where`, e.g. `permit_type=3 AND filed_date>'2024-01-01'`.
- 📋 **SELECT clause.** Limit returned columns via `$select`.
- 📈 **ORDER clause.** Sort with `$order`, e.g. `filed_date DESC`.
- 🔎 **Full-text search.** Free-text `$q` across all string columns.

Each record returns the dataset's native columns verbatim (with Socrata's internal `:@computed_region_*` lookup columns stripped to keep the output clean), plus three appended metadata fields: `_datasetId`, `_datasetUrl`, and `_scrapedAt`. Pagination is automatic and capped at 1,000,000 rows.

> 💡 **Why it matters:** San Francisco publishes one of the richest open-data catalogs of any U.S. city, but the SODA API has its own query language, paging quirks, and computed-region noise. This Actor turns that into a clean, paginated export with no Socrata code on your side.

---

### 🎬 Full Demo

_🚧 Coming soon: a 3-minute walkthrough showing how to go from sign-up to a downloaded SF dataset._

---

### ⚙️ Input

<table>
<thead>
<tr><th>Input</th><th>Type</th><th>Default</th><th>Behavior</th></tr>
</thead>
<tbody>
<tr><td><code>datasetId</code></td><td>enum (4x4)</td><td><code>"3pee-9qhc"</code></td><td>Socrata 4x4 ID. Required. Enumerates all <strong>659 datasets</strong> published on data.sfgov.org.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td><code>10</code></td><td>Records to return. Free plan caps at 10, paid plan at 1,000,000.</td></tr>
<tr><td><code>where</code></td><td>string (SoQL)</td><td><code>""</code></td><td>Socrata <code>$where</code> filter.</td></tr>
<tr><td><code>select</code></td><td>string (SoQL)</td><td><code>""</code></td><td>Comma-separated columns to return.</td></tr>
<tr><td><code>order</code></td><td>string (SoQL)</td><td><code>""</code></td><td>Sort, e.g. <code>filed_date DESC</code>.</td></tr>
<tr><td><code>query</code></td><td>string</td><td><code>""</code></td><td>Free-text full-text search (Socrata <code>$q</code>).</td></tr>
</tbody>
</table>

**Example: every building permit filed in 2026 with cost over $1M.**

```json
{
    "datasetId": "i98e-djp9",
    "maxItems": 1000,
    "where": "filed_date>'2026-01-01' AND estimated_cost>1000000",
    "order": "filed_date DESC"
}
````

**Example: 311 cases mentioning 'graffiti' in the Mission.**

```json
{
    "datasetId": "vw6y-z8j6",
    "maxItems": 500,
    "query": "graffiti",
    "where": "neighborhoods_sffind_boundaries='Mission'"
}
```

> ⚠️ **Good to Know:** the input dataset list contains all **659 datasets currently exposed on data.sfgov.org**. A small number are private (require Socrata authentication) and will return an HTTP 401 / 403 error record. Browse the full catalog and find the right 4x4 ID at [data.sfgov.org](https://data.sfgov.org).

***

### 📊 Output

Each record returns the **dataset's native schema verbatim** (Socrata internal `:@computed_region_*` columns are stripped) plus three metadata fields. Download as CSV, Excel, JSON, or XML.

#### 🧾 Schema (illustrative for building permits dataset `i98e-djp9`)

| Field | Type | Example |
|---|---|---|
| 🆔 `permit_number` | string | `"201903226060"` |
| 🏗️ `permit_type_definition` | string | `"additions alterations or repairs"` |
| 📅 `filed_date` | ISO 8601 | `"2019-03-22T14:35:59.000"` |
| 📋 `status` | string | `"expired"` |
| 📍 `street_number` / `street_name` / `street_suffix` | string | `"760" / "14th" / "St"` |
| 📝 `description` | string | `"revision to pa 2017-1120-4452..."` |
| 💵 `estimated_cost` / `revised_cost` | string (number) | `"15000.0" / "97000.0"` |
| 🏘️ `existing_units` / `proposed_units` | string (number) | `"12.0" / "14.0"` |
| 📮 `zipcode` | string | `"94114"` |
| 🗺️ `neighborhoods_analysis_boundaries` | string | `"Castro/Upper Market"` |
| 📍 `location` | object | `{"latitude":"...","longitude":"..."}` |
| 🆔 `_datasetId` | string | `"i98e-djp9"` |
| 🔗 `_datasetUrl` | string | `"https://data.sfgov.org/d/i98e-djp9"` |
| 🕒 `_scrapedAt` | ISO 8601 | `"2026-05-13T10:00:00.000Z"` |

Every dataset has its own column set. The Actor passes through whatever Socrata returns for the dataset you picked.

#### 📦 Sample record (building permits)

<details>
<summary><strong>🏗️ Castro flat conversion to 14 units, permit 201903226060</strong></summary>

```json
{
    "permit_number": "201903226060",
    "permit_type": "3",
    "permit_type_definition": "additions alterations or repairs",
    "permit_creation_date": "2019-03-22T00:00:00.000",
    "street_number": "760",
    "street_name": "14th",
    "street_suffix": "St",
    "description": "revision to pa 2017-1120-4452 to each adu add 2nd bathroom, enlarge living rooms, kitchens & both bedrooms",
    "status": "expired",
    "filed_date": "2019-03-22T14:35:59.000",
    "issued_date": "2019-09-19T15:31:40.000",
    "estimated_cost": "15000.0",
    "revised_cost": "97000.0",
    "existing_units": "12.0",
    "proposed_units": "14.0",
    "zipcode": "94114",
    "neighborhoods_analysis_boundaries": "Castro/Upper Market",
    "_datasetId": "i98e-djp9",
    "_datasetUrl": "https://data.sfgov.org/d/i98e-djp9",
    "_scrapedAt": "2026-05-13T10:00:00.000Z"
}
```

</details>

***

### ✨ Why choose this Actor

| | Capability |
|---|---|
| 🗂️ | **659 datasets, one Actor.** Every public dataset on data.sfgov.org enumerated in the input schema. |
| 🔍 | **Full SoQL filtering.** `$where`, `$select`, `$order`, `$q` exposed as input fields. |
| 🧹 | **Cleaned output.** Socrata `:@computed_region_*` internal columns stripped automatically. |
| 🔗 | **Dataset provenance.** Every record stamped with `_datasetId`, `_datasetUrl`, `_scrapedAt`. |
| ⚡ | **Fast.** 1,000-row pages, automatic pagination up to 1,000,000 rows. |
| 🚫 | **No API key.** The Socrata SODA API is public and unauthenticated for all public datasets. |

> 📊 SF's open-data catalog is one of the most cited public-sector datasets in the country, powering everything from civic-tech projects to academic research.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ SF Open Data Scraper** *(this Actor)* | $5 free credit, then pay-per-use | **All 659 SF datasets** | **Live per run** | full SoQL ($where, $select, $order, $q) | ⚡ 2 min |
| Manual CSV download from data.sfgov.org | Free | One dataset at a time | Snapshot | None | 🐢 Manual |
| Raw Socrata SODA queries | Free | Full | Live | SoQL | 🛠️ Code required |
| Third-party civic-data aggregators | $99+/month | Mixed | Daily | Vendor-defined | ⏳ Hours |

Pick this Actor when you want a clean, filtered export of any SF dataset without writing a single line of Socrata code.

***

### 🚀 How to use

1. 📝 **Sign up.** [Create a free account with $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp) (takes 2 minutes).
2. 🌐 **Open the Actor.** Go to the San Francisco Open Data Scraper page on the Apify Store.
3. 🎯 **Pick a dataset.** Find the 4x4 ID on `data.sfgov.org` (it's in every dataset URL) and paste it in.
4. 🔍 **Add optional filters.** Type a SoQL `$where`, `$order`, `$select`, or full-text `$q` if you want a slice.
5. 🚀 **Run it.** Click **Start** and let the Actor collect your data.
6. 📥 **Download.** Grab your results in the **Dataset** tab as CSV, Excel, JSON, or XML.

> ⏱️ Total time from signup to downloaded dataset: **3-5 minutes.** No coding required.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%" valign="top">

#### 🏢 Real Estate and Construction

- Track every building permit filed in your target ZIP
- Lead-gen from eviction notices and 3R reports
- Comparable cost-per-unit analysis for development bids
- Monitor neighborhood change with permit pipeline data

</td>
<td width="50%" valign="top">

#### 🍴 Restaurant and Hospitality

- Power restaurant-inspection lookup tools
- Sync mobile food permit feeds for delivery startups
- Track new business registrations by SIC code
- Spot health violations across neighborhoods

</td>
</tr>
<tr>
<td width="50%" valign="top">

#### 🚓 Public Safety and Insurance

- Build crime-density dashboards by neighborhood
- Underwrite policies with live incident data
- Risk-score parcels with parking-citation history
- Track 311 service-request volume per district

</td>
<td width="50%" valign="top">

#### 🗞️ Journalism and Civic Tech

- Investigate displacement via eviction notices
- Quantify housing-supply changes year over year
- Build live-updating civic dashboards
- Power newsroom data-explainer features

</td>
</tr>
</table>

***

### 🔌 Automating SF Open Data Scraper

Control the scraper programmatically for scheduled runs and pipeline integrations:

- 🟢 **Node.js.** Install the `apify-client` NPM package.
- 🐍 **Python.** Use the `apify-client` PyPI package.
- 📚 See the [Apify API documentation](https://docs.apify.com/api/v2) for full details.

The [Apify Schedules feature](https://docs.apify.com/platform/schedules) lets you trigger this Actor on any cron interval. Hourly, daily, or weekly refreshes keep downstream databases in sync automatically.

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Urban-studies papers on housing, transit, displacement
- Public-health theses with 311 and inspection data
- Reproducible policy-impact studies with versioned pulls
- GIS coursework on real municipal datasets

</td>
<td width="50%">

#### 🎨 Personal and creative

- Neighborhood dashboards for your block
- Side projects mapping every food truck in the city
- Civic-art and visualization exhibitions
- Hobby trackers for permit pipeline or 311 timing

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Housing-justice orgs tracking eviction filings
- Mutual-aid networks monitoring 311 categories
- Civic-tech hackathons with structured datasets
- Investigative journalism on city-government performance

</td>
<td width="50%">

#### 🧪 Experimentation

- Train classification ML models on 311 narratives
- Prototype agent pipelines that summarize city activity
- Test geocoding and address-normalization toolchains
- Validate civic-tech product hypotheses with live data

</td>
</tr>
</table>

***

### 🤖 Ask an AI assistant about this scraper

Open a ready-to-send prompt about this ParseForge actor in the AI of your choice:

- 💬 [**ChatGPT**](https://chat.openai.com/?q=How%20do%20I%20use%20the%20San%20Francisco%20Open%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🧠 [**Claude**](https://claude.ai/new?q=How%20do%20I%20use%20the%20San%20Francisco%20Open%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🔍 [**Perplexity**](https://perplexity.ai/search?q=How%20do%20I%20use%20the%20San%20Francisco%20Open%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)
- 🅒 [**Copilot**](https://copilot.microsoft.com/?q=How%20do%20I%20use%20the%20San%20Francisco%20Open%20Data%20Scraper%20by%20ParseForge%20on%20Apify%3F%20Show%20me%20input%20examples%2C%20output%20fields%2C%20common%20use%20cases%2C%20and%20how%20to%20integrate%20it%20into%20a%20workflow.)

***

### ❓ Frequently Asked Questions

#### 🧩 How does it work?

Paste the Socrata 4x4 ID of any SF dataset, optionally add SoQL filters and `maxItems`, click Start, and the Actor pages through the SODA API and emits the records verbatim with three appended metadata fields. No browser automation, no captchas, no setup.

#### 🆔 How do I find a dataset ID?

Browse the catalog at [data.sfgov.org](https://data.sfgov.org). Every dataset URL ends in a 4x4 ID like `i98e-djp9` (building permits) or `vw6y-z8j6` (311 cases). Paste that ID into the input form.

#### 🗂️ How many datasets are supported?

All **659 datasets currently exposed on data.sfgov.org** are enumerated in the input dropdown. New datasets are added by the City regularly; reach out if you need a specific one that isn't yet in the list.

#### 🔍 What is SoQL?

SoQL is Socrata's SQL-like query language for the SODA API. The Actor exposes `$where`, `$select`, `$order`, and `$q` as input fields. Reference docs: [dev.socrata.com](https://dev.socrata.com/docs/queries/). A short cheat sheet: `$where=col='value'`, `$order=col DESC`, `$select=col1,col2`, `$q=search text`.

#### 🧹 Why are some columns missing from the output?

Socrata appends internal `:@computed_region_*` lookup columns to most datasets. These are noise for downstream analytics, so the Actor strips them automatically. Everything else in the dataset's native schema is passed through verbatim.

#### 🔄 How fresh is the data?

The City of San Francisco updates each dataset on its own cadence (some daily, some weekly, some monthly). Every run of this Actor fetches the latest data available on data.sfgov.org as of run time.

#### 🚫 Why did I get a 401 or 403 error?

A small number of datasets are private and require Socrata authentication. The Actor will return a clean `{error: ...}` record indicating which one. Public datasets work without any credentials.

#### ⏰ Can I schedule regular runs?

Yes. Use Apify Schedules to run this Actor on any cron interval (hourly, daily, weekly) and keep a downstream database in sync.

#### 💳 Do I need a paid Apify plan to use this Actor?

No. The free Apify plan is enough for testing and small runs (10 records per run). A paid plan lifts the limit and gives you access to scheduling, higher concurrency, and larger datasets.

#### ⚖️ Is this data legal to use?

Yes. SF Open Data is published under the City of San Francisco Open Data Policy and is generally free to reuse with attribution. Specific datasets may carry additional notes on their landing page; check before commercial redistribution.

#### 🆘 What if I need help?

Our support team is here to help. Contact us through the Apify platform or use the Tally form linked below.

***

### 🔌 Integrate with any app

SF Open Data Scraper connects to any cloud service via [Apify integrations](https://apify.com/integrations):

- [**Make**](https://docs.apify.com/platform/integrations/make) - Automate multi-step workflows
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - Connect with 5,000+ apps
- [**Slack**](https://docs.apify.com/platform/integrations/slack) - Get notified when a new record matches your filters
- [**Airbyte**](https://docs.apify.com/platform/integrations/airbyte) - Pipe SF datasets into your warehouse
- [**GitHub**](https://docs.apify.com/platform/integrations/github) - Trigger runs from commits and releases
- [**Google Drive**](https://docs.apify.com/platform/integrations/drive) - Export datasets straight to Sheets

You can also use webhooks to trigger downstream actions when a run finishes. Push fresh SF civic data into your CRM or analytics backend.

***

### 🔗 Recommended Actors

- [**🌴 Los Angeles Open Data Scraper**](https://apify.com/parseforge/la-open-data-scraper) - Same Socrata pattern, every LA dataset
- [**🏗️ Seattle Building Permits Scraper**](https://apify.com/parseforge/seattle-permits-scraper) - Seattle DCI permits
- [**🏠 Greatschools Scraper**](https://apify.com/parseforge/greatschools-scraper) - U.S. K-12 school ratings
- [**🏛️ James Edition Real Estate Scraper**](https://apify.com/parseforge/james-edition-real-estate-scraper) - Luxury international real estate
- [**📰 PR Newswire Scraper**](https://apify.com/parseforge/pr-newswire-scraper) - Press releases and corporate announcements

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more public-data scrapers.

***

**🆘 Need Help?** [**Open our contact form**](https://tally.so/r/BzdKgA) to request a new scraper, propose a custom data project, or report an issue.

***

> **⚠️ Disclaimer:** this Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by the City and County of San Francisco or Tyler Technologies / Socrata. All trademarks mentioned are the property of their respective owners. Only publicly available open data is collected.

# Actor input Schema

## `datasetId` (type: `string`):

Socrata 4x4 ID of any dataset hosted on data.sfgov.org. Find the ID in the dataset URL (e.g. 'i98e-djp9' for building permits, 'pyih-qa8i' for business locations, 'vw6y-z8j6' for 311 cases, '5cei-gny5' for parking citations, 'rqzj-sfat' for food trucks, 'wg3w-h783' for police incidents).

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `where` (type: `string`):

Optional Socrata SoQL $where clause. Example: "status='issued' AND zipcode='94110'". See https://dev.socrata.com/docs/queries/where.html

## `select` (type: `string`):

Comma-separated list of columns to return. Example: 'permit\_number,status,issued\_date'. Default: all columns.

## `order` (type: `string`):

Sort order. Example: 'issued\_date DESC' or 'filed\_date ASC'

## `query` (type: `string`):

Free-text search across all string columns of the dataset

## Actor input object example

```json
{
  "datasetId": "3pee-9qhc",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of scraped data

## `fullData` (type: `string`):

Complete dataset

# 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 = {
    "datasetId": "3pee-9qhc",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/sf-open-data-scraper").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 = {
    "datasetId": "3pee-9qhc",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/sf-open-data-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "datasetId": "3pee-9qhc",
  "maxItems": 10
}' |
apify call parseforge/sf-open-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/sf-open-data-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "San Francisco Open Data Scraper",
        "description": "Scrape any San Francisco Open Data dataset via Socrata SODA API. Business registrations, restaurants, permits, parking, 311 calls, evictions and more. No API key required.",
        "version": "0.0",
        "x-build-id": "8LSvhnYYTVFP1e4Lz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~sf-open-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-sf-open-data-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/parseforge~sf-open-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-sf-open-data-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/parseforge~sf-open-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-sf-open-data-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": [
                    "datasetId"
                ],
                "properties": {
                    "datasetId": {
                        "title": "Dataset ID (4x4)",
                        "enum": [
                            "esku-ejgv",
                            "6ann-usi8",
                            "wppz-u2hi",
                            "jzu3-4yxp",
                            "92e4-7ptg",
                            "msvd-8edx",
                            "2iky-e78c",
                            "3g5j-aamw",
                            "v94x-pf9r",
                            "ckai-dve4",
                            "mjr8-p6m5",
                            "xr4w-bx78",
                            "xpdk-pzjd",
                            "6h3c-wyfe",
                            "t3vr-buhp",
                            "nnh5-5rwz",
                            "3w8r-nuxp",
                            "8vtn-qytr",
                            "enwt-3u8m",
                            "mwjb-biik",
                            "vw6y-z8j6",
                            "jz25-nkm4",
                            "kkr3-wq7h",
                            "ygi5-84iq",
                            "fdfd-xptc",
                            "4zr7-yz4w",
                            "k3fc-45qw",
                            "2nqb-h7k4",
                            "hrr4-hjc6",
                            "3tsy-c2sd",
                            "an34-qeyq",
                            "pv99-gzft",
                            "ite2-5y3b",
                            "bpc9-7sus",
                            "86e8-rfem",
                            "fizh-zaxt",
                            "y5fw-t3z4",
                            "t65d-x6p8",
                            "u397-j8nr",
                            "fpux-q53t",
                            "rkru-6vcg",
                            "qxw2-ncq3",
                            "tiju-qyvs",
                            "q3xd-hfi8",
                            "peaa-dyr3",
                            "5rkh-waic",
                            "2ymc-znns",
                            "u7dr-xm3v",
                            "hmh3-ff63",
                            "jzyy-jx2t",
                            "6x9q-izga",
                            "j2bu-swwd",
                            "m46u-xzix",
                            "sevw-6tgi",
                            "jc98-7xvv",
                            "hsxb-ci7b",
                            "r33y-seqv",
                            "un6s-gxbd",
                            "w2ze-eag5",
                            "tpyr-dvnc",
                            "d2ef-idww",
                            "j7i3-u9ke",
                            "gqw3-444p",
                            "82gu-asz5",
                            "rh24-ebzg",
                            "nxjg-bhem",
                            "qhc5-mubk",
                            "kja3-qsky",
                            "g8hh-rwgb",
                            "sej3-bbrc",
                            "ejrc-vnwu",
                            "rutu-rpar",
                            "5cki-ur53",
                            "fk8q-nu3s",
                            "6vxp-9av3",
                            "bw5r-gd57",
                            "ubjr-y9qw",
                            "ff3a-iqhv",
                            "3wks-ifmi",
                            "ejht-vp5d",
                            "6m3x-8fu4",
                            "wv5m-vpq2",
                            "e3jj-mbb3",
                            "hnpy-adcr",
                            "d5uh-bk84",
                            "m2xz-p7ja",
                            "wtuh-7epc",
                            "axz8-i7nj",
                            "7jbp-yzp3",
                            "wamw-vt4s",
                            "4kz9-76pb",
                            "a8z7-xscr",
                            "v3fv-x3ux",
                            "8w9a-q5s8",
                            "s4xw-pbpb",
                            "7j2t-hunp",
                            "hn4j-6fx5",
                            "v4v2-5x7s",
                            "pep9-66vw",
                            "mk27-a5x2",
                            "g69s-9jxr",
                            "5dp4-gtxk",
                            "xdgd-c79v",
                            "4zfx-f2ts",
                            "ynuv-fyni",
                            "3pee-9qhc",
                            "knrt-8a7e",
                            "wmam-7g8d",
                            "m22e-6hkz",
                            "qz8r-q5ne",
                            "tgmn-chny",
                            "tc9q-72uj",
                            "myxh-kx93",
                            "wchi-36a5",
                            "tv94-tvke",
                            "ewuz-v3y2",
                            "8n8d-ry79",
                            "wygs-cc76",
                            "jb8g-e374",
                            "qizs-bwft",
                            "cgah-zci4",
                            "wv7d-caby",
                            "9gib-7p8x",
                            "85cd-6rtn",
                            "c27p-2c4v",
                            "npcx-9w98",
                            "56zn-mms6",
                            "m2tk-75a5",
                            "uvqv-zi4r",
                            "s9b2-abj2",
                            "dbak-p2fq",
                            "pnpu-7zb5",
                            "n5sf-qqmx",
                            "7x5u-tf83",
                            "nmzh-y378",
                            "4c8t-ngau",
                            "3n88-2rrb",
                            "kahd-w39p",
                            "bmnx-cibx",
                            "ct8k-kggq",
                            "t2mb-q3sb",
                            "4qsp-ix5t",
                            "4va5-ssaq",
                            "csud-q746",
                            "htai-xw5t",
                            "n84t-vfnk",
                            "6xiy-xib3",
                            "7i7v-m2wn",
                            "ani6-nqh6",
                            "8wra-euu9",
                            "9ggq-m8hp",
                            "pitq-e56w",
                            "yh6b-y6di",
                            "aghq-vgvd",
                            "n6fe-r6rd",
                            "hn5x-7sr8",
                            "24e8-pd2q",
                            "6rf8-dnst",
                            "p2fw-hsrv",
                            "e2st-aufe",
                            "tmph-tgz9",
                            "rxa3-yi4a",
                            "ubhq-cziz",
                            "ik9r-8u7g",
                            "3had-h899",
                            "x83f-ux29",
                            "7br7-cj6v",
                            "h3jp-c25d",
                            "nc68-ngbr",
                            "enxz-fysj",
                            "gtnh-hgvs",
                            "3v2z-djjd",
                            "7yeh-dyn4",
                            "qkex-vh98",
                            "5x94-tptc",
                            "6h77-suve",
                            "hy3m-hqsn",
                            "dgfp-6ijr",
                            "r7bn-7v9c",
                            "eb2x-6eay",
                            "aeam-6mb5",
                            "8r3f-pc6a",
                            "rrqx-thab",
                            "c28a-f6gs",
                            "b3ix-g8t8",
                            "jy5g-rugu",
                            "3ggv-tzb3",
                            "banc-xdvr",
                            "hnxa-ebrb",
                            "h9dp-7wd4",
                            "ufwv-2vjd",
                            "g9zy-srvv",
                            "qu2c-7bqh",
                            "kv9m-37qh",
                            "g2di-xufg",
                            "mr6h-cr3u",
                            "xw26-dnmx",
                            "dtit-7gp4",
                            "nfpa-mg4g",
                            "ujya-ewdj",
                            "jmdm-q43s",
                            "5xmc-5bjj",
                            "ch9w-7kih",
                            "emxt-b6yg",
                            "d4vc-q76h",
                            "q6g7-y2et",
                            "cqbw-m5m3",
                            "hcgx-vtsb",
                            "7crf-46s6",
                            "vx35-bnbs",
                            "y8fp-fbf5",
                            "pcra-csp6",
                            "p5ar-a8ns",
                            "cq4r-nm4f",
                            "u3rf-fdu7",
                            "gm2e-bten",
                            "6df5-4k8u",
                            "btxj-k9uh",
                            "fxfq-npa9",
                            "czsm-3ei3",
                            "ynfy-z5kt",
                            "dcjk-vw8q",
                            "x5tj-txci",
                            "83ki-hu3p",
                            "j67f-aayr",
                            "bt7b-fdtx",
                            "d6x4-hefw",
                            "bsfq-aeyw",
                            "ftty-kx6y",
                            "fdm7-jqqf",
                            "6d73-6c4f",
                            "88g8-5mnd",
                            "f8bh-m8ez",
                            "8cs3-kxq7",
                            "6xsp-xtfp",
                            "yre9-mzkb",
                            "5cei-gny5",
                            "96ck-qcfe",
                            "aa26-h926",
                            "dnhe-svq6",
                            "nkxk-d459",
                            "jyce-e25k",
                            "qbyp-dnir",
                            "yitu-d5am",
                            "pnbj-y63g",
                            "nuek-vuh3",
                            "wr8u-xric",
                            "wb4c-6hwj",
                            "893e-xam6",
                            "2wsq-7wmv",
                            "4zuq-2cbe",
                            "2ycd-bb2c",
                            "pm9d-idh4",
                            "mwqh-x2wn",
                            "64rb-55bi",
                            "9dv8-3432",
                            "u5rm-p23y",
                            "y9be-fypm",
                            "e67f-ux3j",
                            "m288-24sn",
                            "38b7-6db3",
                            "i8y7-m763",
                            "d3dc-v5yr",
                            "m793-kis4",
                            "snqf-y894",
                            "gqui-q3n5",
                            "hpj3-vnwh",
                            "hyj5-mm3b",
                            "ta46-stby",
                            "sfnk-6tdn",
                            "a5zr-cehj",
                            "nn26-kuy2",
                            "d6pi-gknj",
                            "pyih-qa8i",
                            "tvy3-wexg",
                            "5tti-66ds",
                            "43um-8u7u",
                            "63x5-g3m4",
                            "a4wu-zqx3",
                            "xzb6-i4dc",
                            "rwdp-2k4t",
                            "nh4m-jbyj",
                            "9mmf-fv7s",
                            "gu4h-44qp",
                            "bmrn-4tuh",
                            "3tsw-4idn",
                            "njrt-gtwr",
                            "6a3d-758c",
                            "8vnp-htwm",
                            "ff5j-uv3a",
                            "b6kc-439r",
                            "y7mn-8sik",
                            "hbc8-ncn7",
                            "piqy-pimd",
                            "itx2-wzp5",
                            "8m6w-8yuk",
                            "3yi7-eyfd",
                            "6ru7-zq4y",
                            "s3eh-jdwb",
                            "b52k-gy2v",
                            "afkh-hfhr",
                            "pe87-v8tx",
                            "jud5-ja46",
                            "x4gj-zjx7",
                            "rt4q-mf68",
                            "vfz8-awmy",
                            "6jb9-g73z",
                            "hg44-eza7",
                            "ada2-cu6t",
                            "5uzm-v8n8",
                            "cfhj-8c6b",
                            "tsdh-z53a",
                            "t4sf-777q",
                            "6x9s-ipug",
                            "t59u-ig8c",
                            "8iri-b2sz",
                            "xdht-4php",
                            "7way-43xh",
                            "w4sk-nq57",
                            "bp3t-bd4t",
                            "jfxm-zeee",
                            "ebux-gcnq",
                            "m26n-jhf2",
                            "667d-aah6",
                            "knm6-5ej6",
                            "rzic-39gi",
                            "97yj-54sx",
                            "bna4-itif",
                            "fx53-jkka",
                            "i926-ujnc",
                            "855n-xpnm",
                            "2zdj-bwza",
                            "gnap-fj3t",
                            "qzz6-2jup",
                            "rny7-88gk",
                            "xzie-ixjw",
                            "pu5n-qu5c",
                            "s4ub-8j3t",
                            "b947-pj2q",
                            "vckx-s5ks",
                            "3gjj-sffk",
                            "i8m7-kpt9",
                            "v5ic-hjgw",
                            "mx8n-vbe2",
                            "aiwq-f44x",
                            "iqtk-etij",
                            "aaxw-2cb8",
                            "pyxv-n29e",
                            "2sdw-jdpk",
                            "g6kh-9pnv",
                            "ez9i-q28j",
                            "f5ak-rkkp",
                            "udmf-verx",
                            "msn5-73h7",
                            "p6m6-pkpk",
                            "yvhp-ze5x",
                            "6cqg-dxku",
                            "qq7v-hds4",
                            "fwjv-32uk",
                            "uf55-k7py",
                            "abhw-ffzx",
                            "5s76-j52p",
                            "rqzj-sfat",
                            "jjew-r69b",
                            "egmb-2zhs",
                            "vi7r-brsi",
                            "ygmz-vaxd",
                            "nz48-2k5q",
                            "qqn9-j3rz",
                            "my8t-jqzp",
                            "qmxt-r2x4",
                            "sd75-dps9",
                            "9exe-acju",
                            "i28k-bkz6",
                            "v5uc-gana",
                            "4yr8-u35c",
                            "ntc3-dd64",
                            "6dn4-si7z",
                            "e7pr-36bt",
                            "aqb8-9r2r",
                            "5m6g-bqm4",
                            "u7aq-9xrd",
                            "jsip-bbxj",
                            "nbtm-fbw5",
                            "g2t6-cyw6",
                            "9ivs-nf5y",
                            "eshn-8t3a",
                            "ddhd-yzyc",
                            "rwbr-kbhe",
                            "rj4a-ub4u",
                            "r7ep-tutk",
                            "etrb-d3bg",
                            "my66-wiiw",
                            "8i3s-ih2a",
                            "ed3a-sn39",
                            "vtn2-q8ky",
                            "nqyt-nfmd",
                            "9grn-xjpx",
                            "acdm-wktn",
                            "fjq8-r8ws",
                            "8du2-b837",
                            "jc6y-96en",
                            "6vtc-mmhr",
                            "8vzz-qzz9",
                            "hi6h-neyh",
                            "pigs-fac7",
                            "sftu-nd43",
                            "jczu-j2ku",
                            "qjyb-yy3m",
                            "2q9t-p8jg",
                            "6wa6-8527",
                            "tyz3-vt28",
                            "6swy-cmkq",
                            "bkzf-eahq",
                            "d4jk-jw33",
                            "y673-d69b",
                            "qvu5-m3a2",
                            "ujhp-tya6",
                            "kyw5-5shs",
                            "mw29-m2za",
                            "a6aw-rudh",
                            "k6kv-9kix",
                            "b4we-97wx",
                            "wg3w-h783",
                            "tmnf-yvry",
                            "huqr-9p9x",
                            "cd9v-umhr",
                            "ubqf-aqzw",
                            "rwdu-9wb2",
                            "hrt5-562g",
                            "gtk5-z9iw",
                            "jmv6-xier",
                            "jxrr-bmra",
                            "jt6f-vx2z",
                            "k5ee-yrip",
                            "65ik-7wqd",
                            "ewnu-9y3h",
                            "cf6e-9e4j",
                            "su99-qvi4",
                            "h2wp-niyk",
                            "ebsh-uavg",
                            "2kjj-ysvr",
                            "vwjj-xa8f",
                            "dza3-i9eu",
                            "ib5c-xgwu",
                            "gtr9-ntp6",
                            "uzmr-g2uc",
                            "g77e-ikb4",
                            "dx7g-zwbx",
                            "pa56-ek2h",
                            "j2hz-23ps",
                            "ci9u-8awy",
                            "g8m3-pdis",
                            "vcwn-f2xk",
                            "ynvq-waab",
                            "9y57-xm9y",
                            "ugv9-ywu3",
                            "i886-hxz9",
                            "ppwr-akuv",
                            "84zg-myyk",
                            "a8af-5fif",
                            "yrgu-vakm",
                            "h8n7-e4ns",
                            "pyt2-uhqw",
                            "3nje-yn2u",
                            "2gdm-7nym",
                            "bhj2-gxup",
                            "akmp-ztcg",
                            "3mea-di5p",
                            "ramy-di5m",
                            "9tj4-z32q",
                            "mxvq-mfs5",
                            "88s2-6ua9",
                            "nufj-bfbw",
                            "6dpt-7w23",
                            "btm4-e4ak",
                            "yg87-cd6v",
                            "ubf6-e57x",
                            "6jgi-cpb4",
                            "y6ci-vpnb",
                            "cne3-h93g",
                            "c5ge-t6pj",
                            "iqyu-pwpr",
                            "bfhx-j6n5",
                            "pxac-sadh",
                            "vc6r-v7av",
                            "xkgt-9n9y",
                            "vmnk-skih",
                            "giw5-ttjs",
                            "4qbq-hvtt",
                            "re79-p8j5",
                            "wytw-dqq4",
                            "uq3t-6t53",
                            "7e7j-59qk",
                            "tpp3-epx2",
                            "6adp-a5yv",
                            "kc49-udxn",
                            "75h8-2zhw",
                            "ga45-xynq",
                            "hmft-3hxr",
                            "gfpk-269f",
                            "apq2-dy2m",
                            "yuvm-3ujh",
                            "kncr-c6jw",
                            "txuc-3kzm",
                            "bk8g-9b93",
                            "5cap-nnzt",
                            "uqhk-vesf",
                            "acwz-2ua3",
                            "iv34-5p9x",
                            "u555-3ixa",
                            "bahx-rvh4",
                            "fgqe-ia8k",
                            "m75g-xpci",
                            "gjyg-9whd",
                            "qpit-abzn",
                            "7gkm-68qf",
                            "cfaj-f7ry",
                            "8m6p-t372",
                            "xwsp-i2nc",
                            "i2q2-jqhq",
                            "48rt-5dkm",
                            "mq45-f9zi",
                            "hyuc-khdi",
                            "i7fj-76x7",
                            "ssx6-3d9r",
                            "tsy6-7xfs",
                            "dzp4-4my5",
                            "wv58-ismt",
                            "x9je-gi3q",
                            "mczm-4vxi",
                            "djj2-gvaq",
                            "czjm-dat8",
                            "h8vs-2sf8",
                            "r6ws-g6g2",
                            "bjbu-wb5z",
                            "y8qm-zrwi",
                            "umwe-sn9p",
                            "k2rm-926a",
                            "8je3-gv3q",
                            "59sr-386y",
                            "ibrg-quig",
                            "djme-me26",
                            "7vmk-cq9e",
                            "m9gk-e9r5",
                            "kcez-9urr",
                            "2m4y-3tcg",
                            "kjzi-iji7",
                            "u5nr-bxj6",
                            "f6bn-myui",
                            "4zc6-sp7h",
                            "6r5h-j298",
                            "h5q5-vfti",
                            "mizu-nf6z",
                            "ab4h-6ztd",
                            "48aa-8sj9",
                            "9722-grnf",
                            "x344-v6h6",
                            "k6qg-djmi",
                            "vqzx-t7c4",
                            "27b3-yjjx",
                            "imvp-dq3v",
                            "j4dm-6zyr",
                            "6ibt-jpn7",
                            "gcjv-3mzf",
                            "43zc-xw3x",
                            "chfu-j7tc",
                            "htiq-28bt",
                            "e3x5-4br3",
                            "bjtz-s8v8",
                            "p6ht-ubmk",
                            "x2zf-uu4r",
                            "jt6x-6hpy",
                            "xyey-v962",
                            "s6gb-yvth",
                            "2dsh-iggd",
                            "evfd-nvbj",
                            "e3kj-6yzw",
                            "e6tr-sxwg",
                            "pnsi-p43w",
                            "h6f3-ewzk",
                            "4g86-grxu",
                            "s66h-h4vp",
                            "hkz3-itiu",
                            "beah-shgi",
                            "i4t7-35u3",
                            "itv4-r6g6",
                            "3t7b-gebn",
                            "43jt-u7yn",
                            "bpnb-jwfb",
                            "4542-gpa3",
                            "jtgq-b7c5",
                            "qya8-uhsz",
                            "abvp-arbf",
                            "gmfx-8h6i",
                            "6d9h-4u5v",
                            "vd6w-dq8r",
                            "amiw-iisi",
                            "m48z-6ji4",
                            "43dv-5hf4",
                            "yhqp-riqs",
                            "tkzw-k3nq",
                            "qrwx-q4gg",
                            "34ws-kyf6",
                            "b6tj-gt35",
                            "5aye-4rtt",
                            "78va-8dhi",
                            "5mt3-4e49",
                            "3psu-pn9h",
                            "wg8w-68vc",
                            "aw7j-9354",
                            "v22h-ujnv",
                            "2x22-z5j6",
                            "qdm2-fi8r",
                            "keex-zmn4",
                            "f2zs-jevy",
                            "cqi5-hm2d",
                            "xu5w-5kgd",
                            "5kya-mfst",
                            "rzkk-54yv",
                            "v2t5-s9iv",
                            "yw7x-gh5g",
                            "m8hk-2ipk",
                            "7p5y-sxmu",
                            "8x25-yybr",
                            "c5wg-gcqb",
                            "dau3-4s8f",
                            "ubvf-ztfx",
                            "8gtc-pjc6",
                            "nwes-mmgh",
                            "ybh5-27n2",
                            "tzh6-6j82",
                            "642n-3htf",
                            "5buk-jp7b",
                            "qmdj-wtj2",
                            "b7eg-vqw2",
                            "7p2k-c3z6",
                            "q7uq-hghg",
                            "k4g8-b3sf",
                            "ghba-upwh",
                            "ni2e-vpbg",
                            "5wbp-dwzt",
                            "smdf-6c45",
                            "p5r5-fd7g",
                            "n9pm-xkyq",
                            "3z93-mft8",
                            "xgse-mjer",
                            "yrfc-c5yu",
                            "iy4m-quhy",
                            "xtj2-daw9",
                            "h9wh-cg3m",
                            "usp2-teig",
                            "g9f8-pkcz",
                            "ikk5-s7ew",
                            "4n3c-huha",
                            "5yf5-ms5f",
                            "rxfc-8aap",
                            "3i4a-hu95",
                            "xzez-p3nc"
                        ],
                        "type": "string",
                        "description": "Socrata 4x4 ID of any dataset hosted on data.sfgov.org. Find the ID in the dataset URL (e.g. 'i98e-djp9' for building permits, 'pyih-qa8i' for business locations, 'vw6y-z8j6' for 311 cases, '5cei-gny5' for parking citations, 'rqzj-sfat' for food trucks, 'wg3w-h783' for police incidents)."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "where": {
                        "title": "$where filter (SoQL)",
                        "type": "string",
                        "description": "Optional Socrata SoQL $where clause. Example: \"status='issued' AND zipcode='94110'\". See https://dev.socrata.com/docs/queries/where.html"
                    },
                    "select": {
                        "title": "$select columns",
                        "type": "string",
                        "description": "Comma-separated list of columns to return. Example: 'permit_number,status,issued_date'. Default: all columns."
                    },
                    "order": {
                        "title": "$order clause",
                        "type": "string",
                        "description": "Sort order. Example: 'issued_date DESC' or 'filed_date ASC'"
                    },
                    "query": {
                        "title": "$q full-text search",
                        "type": "string",
                        "description": "Free-text search across all string columns of the dataset"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
