How to Query a County's Socrata Open-Data API (When It's Not ArcGIS)
Most of the parcel-query guides on this site assume an ArcGIS REST endpoint, because most counties run one. King County, Washington doesn't fit that assumption cleanly: its public ArcGIS parcel layer exposes only PIN, MAJOR, and MINOR, geometry and an identifier, no owner name, no address. The county's ownership data lives instead on data.kingcounty.gov, a Socrata open-data portal with its own API, its own query language, and none of the ArcGIS WHERE-clause syntax covered elsewhere on this site. This guide covers how to recognize a Socrata portal, how its query syntax maps to the ArcGIS pattern you may already know, and three live worked examples: King County, Cook County IL, and New York City.
Telling ArcGIS and Socrata Apart
The two platforms are visible in the URL shape before you send a single query:
| ArcGIS REST | Socrata (SODA API) | |
|---|---|---|
| URL pattern | /arcgis/rest/services/.../MapServer/0/query |
/resource/<4x4-id>.json |
| Dataset identifier | A service name and layer index | An 8-character ID, two groups of four (e.g. 4854-i48r) |
| Query language | SQL-style WHERE clause | SoQL (Socrata Query Language), $where and related params |
| Metadata endpoint | ?f=json on the layer URL |
/api/views/<id>.json |
| Typical host | A county-owned subdomain, e.g. gis.<county>.gov |
data.<city-or-county>.gov |
If a search for your county's GIS data turns up a URL containing data. followed by a city, county, or state name and .gov, rather than /arcgis/rest/services/, you're very likely looking at a Socrata portal (or occasionally a similar open-data platform with a comparable structure). Socrata also runs a cross-portal catalog search API that can locate a dataset by keyword across a specific domain without knowing its ID in advance, covered below.
/api/views/<id>.json and confirm the dataset's actual name and column list match what you expect.
SoQL Basics, Mapped to ArcGIS Syntax
If you've worked through the owner-name or APN ArcGIS guides on this site, SoQL will feel familiar with different parameter names. Both are SQL-adjacent query languages exposed as URL parameters:
| Purpose | ArcGIS REST | Socrata (SoQL) |
|---|---|---|
| Filter rows | where=UPPER(OWNER)%20LIKE%20UPPER('%25SMITH%25') |
$where=upper(owner_name) like '%25SMITH%25' |
| Exact match on a field | where=APN='4982603900' |
parcel_number=4982603900 (plain query param) or $where=parcel_number='4982603900' |
| Choose columns | outFields=PIN,OWNER,ADDR |
$select=pin,owner_name,address |
| Full-text search | not standard | $q=smith (searches across all text columns) |
| Limit / page results | resultRecordCount / resultOffset |
$limit / $offset |
| Response format | f=json / f=geojson |
.json / .csv / .geojson as the resource file extension |
Two differences matter in practice. First, Socrata field names are typically lowercase with underscores (parcel_number, owner_name), not the mixed-case field names common on ArcGIS layers, though this varies by dataset and is worth confirming, same as any field name, against the dataset's own metadata rather than assumed. Second, you can request CSV directly by changing the file extension on the resource URL, /resource/4854-i48r.csv instead of .json, with the same query parameters, no separate conversion step the way ArcGIS REST output needs one. The full parameter reference is in Socrata's own developer documentation.
Worked Example: King County, Washington
King County's ArcGIS parcel layer, documented on the King County atlas page, returns only PIN, MAJOR, and MINOR. Resolve an address to a PIN first, through the Assessor's eReal Property portal or the county's Parcel Viewer, or from a prior ArcGIS query by PIN as covered in the owner-name guide. Once you have the PIN, two Socrata tables on data.kingcounty.gov carry it:
- Property Legal Descriptions (
4854-i48r), filtered byparcel_number - Real Property Tax Receivables (
dkna-i698), filtered byaccount_number
PIN 0000200001, the same sample PIN used in the King County atlas record, resolves against the legal-descriptions table:
https://data.kingcounty.gov/resource/4854-i48r.csv?parcel_number=0000200001
That request returns the parcel's account number, plat lot and block, and its full recorded legal description as a single CSV row. Change .csv to .json for a JSON response with the same filter, or add $select=account_number,legal_description to narrow the columns returned.
A Second Example: Cook County, Illinois
Cook County's public ArcGIS parcel layer has the same shape as King County's: PIN fields and geometry only, no owner name, as covered in the owner-name guide and the APN guide. Cook County's open-data catalog at datacatalog.cookcountyil.gov runs on the same Socrata platform, and its Assessor's office publishes an Assessor - Parcel Addresses dataset (3723-97qp) with both the situs address and the owner's mailing name on file:
https://datacatalog.cookcountyil.gov/resource/3723-97qp.json?pin=17052170040000&$order=year%20DESC&$limit=1
That query returns the parcel's full situs address, city, and ZIP, plus owner_address_name and the owner's mailing address, from a single PIN filter, no separate assessor-portal web form. The dataset carries one row per tax year going back to 1999, so a plain pin= filter with no $order/$limit returns every year on file rather than one record; sorting by year DESC and limiting to 1 row is how you get the current owner of record. Cook County's Socrata catalog also carries a Parcel Universe dataset (nj4t-kc8j) with township, taxing-district, and coordinate data per PIN, useful when you need the parcel's tax geography rather than its owner.
A Third Example: New York City
Socrata isn't only a county-level platform; a number of major cities run their open-data portals on it too, with the same SoQL syntax. New York City's data.cityofnewyork.us publishes PLUTO (Primary Land Use Tax Lot Output, 64uk-42ks), the citywide parcel dataset keyed by BBL (Borough-Block-Lot) rather than an APN or PIN:
https://data.cityofnewyork.us/resource/64uk-42ks.json?$where=bbl=1000010010&$select=bbl,address,ownername
That returns the parcel's address and ownername in one request. PLUTO covers roughly 859,000 tax lots across all five boroughs in a single dataset, unlike the county-by-county split typical of ArcGIS parcel layers, one more way city and county open-data platforms diverge in how they organize the same underlying concept.
Common Gotchas
Finding the right dataset without knowing its ID
Every Socrata deployment supports a browser-based catalog search at the portal's own domain (search for "parcel" or "assessor" directly on data.<name>.gov), and Socrata also runs a machine-queryable Discovery API at api.us.socrata.com/api/catalog/v1 that accepts a domains and q parameter and returns matching dataset IDs and names for a given portal, useful for scripting a lookup rather than searching by hand.
Rate limits without an app token
Unauthenticated SODA requests are pooled and throttled by source IP address; Socrata's own documentation on application tokens notes that a free app token moves your requests into their own pool, which in practice removes throttling for reasonable use. A throttled request returns HTTP 429. For occasional lookups this rarely matters; for a scripted bulk pull across many PINs, register a free token from the portal's developer settings page and pass it as the X-App-Token header.
Column names aren't standardized across counties
Just as ArcGIS field names vary by county (OWNER_NAME in one, TaxName in another), Socrata column names vary by dataset publisher. King County's legal-descriptions table uses parcel_number; Cook County's parcel-addresses table uses pin. Always check a dataset's column list, either at /api/views/<id>.json or by requesting one row with $limit=1, before writing a query.
CSV vs. JSON output
Unlike ArcGIS REST, which needs a separate conversion step to reach a spreadsheet-ready format (covered in Getting ArcGIS REST Data into Excel or CSV), Socrata returns a flat CSV natively when you request the .csv resource extension. There's no attributes-versus-properties nesting to flatten; a Socrata CSV opens directly in Excel with columns already matching the dataset's field names.
Socrata Open-Data API FAQ
How do I know if my county uses Socrata instead of ArcGIS?
Check the URL shape. ArcGIS REST endpoints contain /arcgis/rest/services/ and end in /MapServer/0 or /FeatureServer/0. Socrata portals use a data.<name>.gov-style host and expose datasets at /resource/<id>.json. Many jurisdictions run both, an ArcGIS layer for spatial/geometry data and a Socrata portal for tabular records like tax rolls and legal descriptions.
What is SoQL?
SoQL (Socrata Query Language) is the SQL-like query language Socrata's SODA API accepts as URL parameters, primarily $where for filtering, $select for choosing columns, and $limit/$offset for paging. It's functionally similar to an ArcGIS WHERE clause but with different parameter names and no outFields/f=json equivalents, since the resource's file extension controls the output format instead.
Does King County publish owner names anywhere in machine-readable form?
Not on its public ArcGIS parcel layer. Its Socrata portal at data.kingcounty.gov carries related tables (legal descriptions, tax receivables) keyed by PIN or account number that can be cross-referenced once you have a PIN from the Assessor's eReal Property portal or Parcel Viewer.
Can I request CSV directly from a Socrata API without converting anything?
Yes. Change the resource URL's file extension from .json to .csv, keeping the same query parameters, and the response is a flat, spreadsheet-ready CSV with no nested structure to flatten.
Do I need an API key to query a Socrata dataset?
No key is required for basic use; unauthenticated requests are pooled and rate-limited by IP address. A free application token, registered on the portal, moves your requests into a dedicated pool for a higher effective limit, worth doing for any scripted or bulk use.
Are Socrata portals only run by counties?
No. Cities, states, and federal agencies all run Socrata deployments. New York City's PLUTO dataset, covered above, is a citywide example; the platform and query syntax are identical regardless of which level of government publishes the portal.
Have a PIN or APN and want the parcel record behind it, ArcGIS or otherwise?
Related Resources
- How to Query County Parcel Data by Owner Name via ArcGIS REST API: the ArcGIS-side WHERE-clause mechanics this guide's SoQL table maps against
- How to Query County Parcel Data by APN via ArcGIS REST API
- How to Get ArcGIS REST Parcel Data into Excel or CSV: the equivalent flattening problem on the ArcGIS side, which Socrata's native CSV export skips
- What is an APN (Assessor's Parcel Number)?: covers BBL, PIN, and other regional identifier names
- King County, WA atlas page
- Cook County, IL atlas page
- Parcel REST Atlas: catalogued ArcGIS endpoints for counties across the U.S.