To get a code violation list, use the responsible city's public dataset or request its existing enforcement records. Keep the case number, address, case type, status, dates, and source link. Then group cases by property and investigate the records that fit your criteria. A complaint or open case alone does not establish seller motivation.

This page covers a list across a market. For one property, use the address lookup guide. The building-code guide explains the terminology, and the distressed-property workflow puts code records alongside other research.

Official sources: what you can actually obtain

Sources checked September 26, 2026. An address-search portal and an exportable case dataset are different tools. Select the source that matches the task.

Market Official source Suitable use Important boundary
Seattle, WA Code Complaints and Violations dataset Filter and export code records across the city Includes complaints and different enforcement stages; read the status and case details
Minneapolis, MN Property Information Search Check property records by address and follow available inspection/enforcement information An address lookup does not imply a downloadable citywide violation list
St. Paul, MN Vacant Buildings list Download the published vacant-building registry This is a specific program list, not the city's full code-enforcement caseload
St. Paul, MN PAULIE instructions Follow the city's current process for permit and licensing records Check access requirements and record availability; use a records request for information the portal does not provide

These markets are supported by FlaggedLeads, but the available app records differ by source. Check full coverage before signing up. For a vacancy-specific list, the registry guide provides the St. Paul walkthrough.

Exporting a Seattle code-violation list

1. Open the official dataset and choose your scope

Use the Seattle dataset above. Choose whether you are researching recent activity, unresolved cases, or a property's full history. Save the filters with the export date so you can reproduce the list.

An open-date filter selects when a case began. It can exclude an older case with a recent inspection, so keep LastInspDate if recent enforcement activity matters to you. Do not call every case outside a recent date window resolved.

2. Keep these fields

Seattle's official dataset field documentation describes the columns. Their display names and underlying field names help you recognize them in exports and queries.

Display name Field Use
RecordNum recordnum Case identifier; keep it when deduplicating
OriginalAddress1 originaladdress1 Property location to match against a parcel
RecordTypeDesc recordtypedesc Descriptive case category; may contain multiple types
StatusCurrent statuscurrent Recorded case stage
OpenDate opendate Date the case began
LastInspDate / LastInspResult lastinspdate / lastinspresult Available inspection context
Link link Route back to the official case

Use the portal's export/download controls and retain a raw copy. Compare the exported count with the filtered result count shown by the source. If you use an API, follow that service's pagination rules instead of assuming the first response is complete.

3. Read a sample before filtering the entire file

Illustrative row, not a live property: a record with RecordTypeDesc = Vacant Building and StatusCurrent = Under Investigation belongs in a review queue for reported vacancy. It does not establish a confirmed violation, condemnation, or a house for sale. Open the case link and read the available findings.

A second case at the same address should remain a separate case in your raw file. Your property summary can count both, with the underlying case numbers preserved. This avoids confusing two cases with two properties.

4. Separate the property summary from case history

Build one property row per reliably matched parcel, or normalized address when a parcel is unavailable. Keep a second table with every source case. Useful summary fields are latest case activity, relevant unresolved statuses, case count, and any order requiring follow-up.

An uncertain address match should stay uncertain. Combining two units or neighboring parcels can create a misleading history.

If you cannot download a list

Ask the responsible department for existing records. A narrow request can specify jurisdiction, date range, fields, and preferred electronic format:

Please provide existing code-enforcement case records for [jurisdiction] opened between [start] and [end], including case number, property address, parcel identifier where held, case type, status, open and close dates, inspection dates, and available links to the case documents. CSV or spreadsheet format is preferred if maintained. Please identify any fields withheld or unavailable.

Availability, exemptions, and response procedures depend on local law. An agency may not maintain the exact spreadsheet you want. Our public-records request guide explains how to narrow and track the request; do not assume the records will arrive in one uniform format.

From cases to properties worth researching

Review severity, repeat activity, inspection findings, and repairs in progress. A construction-related case can involve either improvement or unsafe work, so read the actual condition before dismissing or prioritizing it. A closed case records a stage in that case; it does not clear every other restriction on the property.

Next, check ownership and available mailing details. For entity names, use the LLC research guide. Keep records of contact roles and source dates. The filtering guide expands the cleanup process.

The illustration below comes from an earlier Puget Sound analysis and shows why property counts and case counts should be separated. Its totals are historical, not a current inventory or a prediction of who will sell.

Using an existing research tool

FlaggedLeads organizes available code and property records in supported markets. Check the market list and available coverage before entering your email. Create an account for a 14-day trial in one selected metro, with no card required. Trial exports include up to 100 rows per download. Owner details, case types, and other fields vary by source, and official records remain the place to confirm an order.

Historical Puget Sound illustration comparing properties with any, repeat, and chronic code cases; these are not current inventory totals.

Frequently asked questions

How do I get a list of code violations in my city?

Start with the city's official enforcement dataset. If only address searches are available, ask the department for existing case records in an electronic format. Keep source dates and identifiers, then separate case-level rows from property-level summaries.

Is a complaint the same as a confirmed code violation?

No. A complaint can lead to investigation without a violation finding. Read the case status, inspection results, and any notice or order before describing the property as having a confirmed violation.

Which fields should a code violation list include?

Keep case number, address, parcel identifier where available, category, status, dates, and a source link. Inspection details help explain what happened after the case opened. Preserve the original export separately from your cleaned list.

Does St. Paul's vacant-building list contain every code case?

No. It covers the city's vacant-building program. Use the city's other records processes for enforcement information outside that registry.

Does a code violation list tell me which owners want to sell?

No. It identifies records to investigate. Confirm the condition and ownership, then establish the owner's intentions directly rather than treating a case or score as a sale offer.