San Francisco CA 311
Public data
San Francisco 311 cases with closure dates, coordinates, and when last updated. Ingest delivers this data to a data warehouse you own as one table, and updates it on the schedule you choose. There is no code to write and nothing to install.
- 8.9 millionservice requests as of September 2026
- About 18,000new service requests a week
- 1 tableone row per service request
What people use it for
- Find rising problemsTrack when requests are updated to spot issues requiring attention.
- Measure closure timeCompare closure and creation dates to see how long work takes.
- Map request sourcesPlot coordinates to see which neighborhoods call most often.
What you get
| Table | Each row is |
|---|---|
Service requestsrecords | One service request |
Good to know
Each run picks up requests created or changed since the last run, so updates to status, description, or closure appear after the next run.
How it works
- Choose San Francisco CA 311. The data is public, so there is nothing to sign in to.
- Pick where it goes. BigQuery, Snowflake, Databricks, Redshift and 10 more, in an account you own.
- Pick a schedule. Daily is the default, and weekly and monthly are there too.
- Ingest runs it from then on. If a run fails, your dashboard shows which table and why.
Questions
- What does the San Francisco CA 311 data include?
- One table, service requests, with one row per service request.
- Do I need an account with San Francisco CA 311?
- No. The data is public, so there is nothing to sign up for and nothing to paste in.
- Which warehouses can San Francisco CA 311 data go to?
- Amazon S3, Google Cloud Storage, Azure Blob Storage, Apache Iceberg, Ingest Managed Lakehouse, MotherDuck, Postgres, Amazon Athena, Databricks, Redshift, BigQuery, ClickHouse, MySQL / generic SQL and Snowflake, in an account you own.
- How fresh is the data?
- As fresh as your schedule: daily by default, or weekly or monthly. Schedules as often as every 15 minutes are on the Enterprise plan. Each run picks up requests created or changed since the last run, so updates to status, description, or closure appear after the next run.
- Will running it again create duplicate rows?
- No. Each row is stored once, by its key: when a run reads a row that is already there, it replaces that copy instead of adding a second one.
- Do I need to write code?
- No. Ingest builds, runs and maintains the connector. Someone with access to your warehouse connects it once, following a short guide.
For your data team: technical reference
Connector sanfrancisco_311, version 0.1.0, a REST source, status beta, authentication none.
Vendor documentation: https://data.sf.gov/City-Infrastructure/311-Cases/vw6y-z8j6
Configuration
No configuration required.
Resources
| Resource | Status | Plan | Write | Primary key | Overrides |
|---|---|---|---|---|---|
recordsSan Francisco 311 cases. Incremental sync follows updated_datetime, ordered by timestamp and service_request_id. Changes that do not advance updated_datetime are not refreshed. | beta | watermark | merge | service_request_id | backfill_days |
Where this lands, and what else connects
Setting up the destination is its own short guide, one per warehouse or lake: Amazon S3, Google Cloud Storage, Azure Blob Storage, Apache Iceberg, Ingest Managed Lakehouse, MotherDuck, Postgres, Amazon Athena, Databricks, Redshift, BigQuery, ClickHouse, MySQL / generic SQL, Snowflake.
Other sources Ingest connects for government teams: Abilene TX 311, Albany NY 311, Ann Arbor MI 311, Anne Arundel County MD 311, Auburn WA 311, Aurora IL 311.
- How Ingest reads a REST source
- Ingest for government teams
- The tables Ingest creates
- Every source Ingest connects
Get San Francisco CA 311 data into your warehouse
Last updated .