---
title: "GeoFRED regional cross-section - state / MSA / county / country data for a series group"
method: GET
path: "/api/v1/fred/regional"
tags: ["Central Banks & Monetary"]
---

# GeoFRED regional cross-section - state / MSA / county / country data for a series group

`GET /api/v1/fred/regional`

Region-keyed cross-sections from the GeoFRED (FRED Maps) API. ONE call returns the whole region map.

Both modes put their identifier in `symbol` - there is no `series_group` parameter. Series-group mode (`is_series_group=true`) needs `region_type`, `units` and `frequency` alongside it; single-series mode takes a series ID and the server resolves its region group.

Working example, copy it as-is:
`/api/v1/fred/regional?symbol=882&is_series_group=true&region_type=state&units=Dollars&frequency=a&season=nsa&date=2023-01-01`

`season` values are lowercase (`sa`, `nsa`, `ssa`); `NSA` is rejected.

## Query parameters

- `symbol` string, required — The identifier itself. In series-group mode this is the FRED series_group ID (e.g. 882); in single-series mode a series ID. Named `symbol` for both - there is no separate `series_group` parameter to send.
- `is_series_group` boolean — True when symbol is a series_group ID (requires region_type, units, frequency).
- `region_type` 'bea' | 'msa' | 'frb' | 'necta' | 'state' | 'country' | 'county' | 'censusregion', nullable — Region type (required in series-group mode).
- `units` string, nullable — Series units (required in series-group mode).
- `frequency` 'a' | 'q' | 'm' | 'w' | 'd' | 'wef' | 'weth' | 'wew' | 'wetu' | 'wem' | 'wesu' | 'wesa' | 'bwew' | 'bwem', nullable — Frequency aggregation (required in series-group mode).
- `season` 'sa' | 'nsa' | 'ssa' — Seasonal adjustment. Lowercase only - 'NSA' is rejected.
- `start_date` string, nullable — Lower bound YYYY-MM-DD.
- `date` string, nullable — A single observation date YYYY-MM-DD (default latest).
- `transform` 'chg' | 'ch1' | 'pch' | 'pc1' | 'pca' | 'cch' | 'cca' | 'log', nullable — Optional value transformation.
- `aggregation_method` 'avg' | 'sum' | 'eop' — Aggregation method when frequency is set.

## Response `200`

Flattened region cross-section rows (date, region, code, value, series_id, units) plus group metadata. operation_id auto-generated as `fred_regional`.

- unknown

## Other responses

- `401` — Missing or invalid `x-api-key` header. JSON body with a stable `code` distinguishing `missing_api_key` (no header sent) from `invalid_api_key` (header sent, key not accepted); any other 401 source carries the generic `unauthorized` with its detail as `reason`. Plus `hint`. `plan` is always null on 401 - an unauthenticated request has no plan; quota exhaustion is 429, not 401.
- `422` — Validation Error
- `429` — Daily rate limit exceeded. Check `X-RateLimit-Reset` for the next window.
- `503` — Upstream source is temporarily unavailable. Retry after a short delay.

---

[API](https://skmtc.net/sugra/apis/sugra-api.md) · [All operations](https://skmtc.net/sugra/apis/sugra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sugra/sugra-api/versions/4c4530760ba1/schema)
