BYTETOOLS

ArcGIS Hub Search API

Free ArcGIS Hub search API with no key: query datasets across thousands of government open data sites at once, with layer capabilities and download flags. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 21 Aug 2026

What is the ArcGIS Hub Search API?

The ArcGIS Hub search API is a free, key-free endpoint that searches dataset metadata across the thousands of government open data sites built on ArcGIS Hub. Each result carries the layer's query capabilities, field list, categories and whether it can be downloaded.

Most city and county GIS portals in the English-speaking world run on ArcGIS Hub, and every one of them is indexed here. That makes this the geospatial counterpart to Socrata's Discovery API: one query, thousands of publishers, results that tell you not just what exists but what you can do with it. The `advancedQueryCapabilities` block on each record says whether the underlying service supports statistics, SQL expressions, pagination, distance queries and ordering — so you can filter to layers that will actually support the query you intend to run before you write it.

The response is JSON:API shaped: a `data` array of typed objects, each with `id`, `type` and a large `attributes` bag. Be selective. A single record carries composition timestamps, enrichment coverage, display fields, current ArcGIS version and dozens of capability flags, most of which you will never use, and the payloads add up quickly when you page. Timestamps are Unix epoch milliseconds, not ISO strings, which is the usual first bug.

Quick facts

Base URL
https://hub.arcgis.com/api/v3/datasets
Authentication
No key for public content. Private organisational items require an ArcGIS token, which this endpoint does not need for open data.
Rate limit
No published limit. Records are large, so keep page sizes small and cache.
Pricing
Free for public open data. Individual layers carry their publisher's licence.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the ArcGIS Hub Search API

Every request below was executed against the live API on 21 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Search government GIS datasets for parks layers

GET https://hub.arcgis.com/api/v3/datasets?page%5Bsize%5D=1&q=parks

curl
curl 'https://hub.arcgis.com/api/v3/datasets?page%5Bsize%5D=1&q=parks'
JavaScript (fetch)
const res = await fetch("https://hub.arcgis.com/api/v3/datasets?page%5Bsize%5D=1&q=parks");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://hub.arcgis.com/api/v3/datasets?page%5Bsize%5D=1&q=parks", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "data": [
    {
      "id": "731b993ca6c3432d9226741d2514a2c2_2",
      "type": "dataset",
      "attributes": {
        "errors": [],
        "access": "public",
        "additionalResources": [],
        "advancedQueryCapabilities": {
          "supportsStatistics": true,
          "supportsSqlExpression": true,
          "supportsReturningQueryExtent": true,
          "supportsTrueCurve": true,
          "supportsOrderBy": true,
          "useStandardizedQueries": false,
          "supportsQueryWithDistance": true,
          "supportsPagination": true,
          "supportsCountDistinct": true,
          "supportsDistinct": true,
          "supportsHavingClause": true
        },
        "collection": [
          "Dataset"
        ],
        "categories": [
          "The Colony",
          "Parks and Recreation"
        ],
        "commentsEnabled": false,
        "composeStatus": {
          "retries": 0,
          "pass": true,
          "lastRetriedAt": 1716482329230
        },
        "composedAt": 1716482329227,
        "content": "Map Service",
        "created": 1556141289000,
        "currentVersion": 10.61,
        "description": "Parks and Rec",
        "displayField": "ParkName",
        "downloadable": true,
        "enrichCoverage": "local",
        "enrichQuality": 66,
        "extent": {
          "coordinates": [
            [
              -96.9608,
              33.0606
            ],
            [
              -96.844,
              33.1358
            ]
          ],
          "type": "envelope"
        },
        "fieldNames": [
          "OBJECTID

Parameters

ParameterTypeRequiredDescription
qqueryOptionalFull-text search across titles, descriptions and tags. parks
page[size]queryOptionalResults per page. Send it URL-encoded as `page%5Bsize%5D`. 1
page[number]queryOptionalPage number, also bracket-encoded. 2
filter[tags]queryOptionalRestrict by tag. transportation
filter[openData]queryOptionalRestrict to items flagged as open data. true
fields[datasets]queryOptionalSparse fieldset — the single most effective way to shrink the response. name,description,url

Response fields

data[].idstring
Composite item ID and layer index, for example `731b993c..._2`.
data[].typestring
`dataset` for open data layers.
attributes.accessstring
`public` for open data; anything else needs an ArcGIS token.
attributes.advancedQueryCapabilitiesobject
Whether the service supports statistics, SQL expressions, pagination, distance queries and ordering.
attributes.categoriesarray
Publisher's own category path, which often reveals the owning department.
attributes.contentstring
`Map Service`, `Feature Service` and similar — determines how you query it.
attributes.downloadableboolean
Whether static exports such as CSV, GeoJSON or shapefile are offered.
attributes.created / composedAtinteger
Unix epoch milliseconds, not ISO 8601 strings.
attributes.displayFieldstring
The field the publisher considers the human label for each feature.

What you can build with the ArcGIS Hub Search API

  • Find which governments publish a given GIS layer type
  • Filter to layers that support server-side statistics before building a query
  • Build a cross-jurisdiction geospatial data search
  • Discover downloadable GeoJSON sources for a mapping project
  • Audit how many authorities publish a mandated layer

Common errors and how to fix them

400 Invalid Parameter Key

A filter key the resource does not accept.

Fix: The message names the bad key. Bracketed parameters must be URL-encoded — `page%5Bsize%5D`, not `page[size]`.

Enormous responses

Every attribute is returned by default.

Fix: Use `fields[datasets]` to request only the attributes you need; it cuts payload size dramatically.

Dates decades in the past or future

Timestamps are epoch milliseconds.

Fix: Divide by 1,000 before passing to a seconds-based date constructor.

Layer URL returns nothing useful

The item is a Map Service rather than a Feature Service.

Fix: Check `attributes.content` — only feature services accept attribute and spatial queries.

ArcGIS Hub Search API — frequently asked questions

Is the ArcGIS Hub search API free?

Yes, for public open data. No key or account is needed. Only private organisational items require an ArcGIS token, and those are outside what this endpoint returns anonymously.

How is this different from a single city's open data feed?

A city feed lists one publisher's catalogue. This searches across the thousands of ArcGIS Hub sites at once, so you can ask which governments publish a given layer rather than whether one particular government does.

What does advancedQueryCapabilities tell me?

Which operations the underlying service will accept — server-side statistics, SQL expressions, pagination, distance filters and ordering. Checking it first saves writing a query the service will reject.

Why are the responses so large?

Each record carries the full ArcGIS item description, including capability flags and field definitions. Use the `fields[datasets]` sparse fieldset parameter to request only the attributes you actually read.

Tools that pair with this API

Alternatives to ArcGIS Hub Search API

If ArcGIS Hub Search does not fit, these government & open data apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
Federal RegisterFree US Federal Register API with no key: executive orders, rules, notices and proposed regulations with full text search back to 1994. Tested curl example.No keyYes19 Aug 2026
USAspendingFree US federal spending API with no key: agency budgets, contracts, grants and award data covering trillions in government spending. Tested curl example.No keyNo19 Aug 2026
UK Parliament MembersFree UK Parliament Members API with no key: MPs and Lords, constituencies, party affiliation, contact details and voting records. Tested curl example.No keyNo19 Aug 2026
UK Police DataFree UK Police API with no key: street-level crime data, police forces, neighbourhood teams and stop-and-search records by location and month. Tested example.No keyYes19 Aug 2026
ArgentinaDatosFree Argentine data API with no key: historical dollar exchange rates across all market types (blue, oficial, MEP), inflation and holidays. Tested example.No keyYes20 Aug 2026
data.gov.auFree Australian government open data API with no key: search 141,000+ datasets across federal, state and local agencies through the standard CKAN interface. Tested example included.No keyYes21 Aug 2026
All Government & Open Data APIs

ArcGIS Hub Search is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 21 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.