/v1/prices/us/metro-areasList US metropolitan areas with regional price data (paginated)
Return a paginated list of every US metropolitan area for which WageAPI holds BEA Regional Price Parity (RPP) data. Use this as a discovery step before calling `/v1/prices/us/metro-areas/{area_code}` — the response gives you canonical area codes (e.g. `METRO35620` for New York, `METRO31080` for Los Angeles) plus overall RPP values so callers can rank or filter before drilling into a specific metro. **Pagination:** `page` / `page_size` (defaults 1 / 50, max 100). The response `metadata.pagination` block carries the total count. **Response shape:** each item is a `MetroAreaSummary` with area code, human-readable name, state, year, and overall RPP (100 = US average). Source: BEA Regional Price Parities (RPP). Required scope: `costapi:read`.
Authentication
Requires API key via X-API-Key header.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| page | query | integer | optional | Page number |
| page_size | query | integer | optional | Items per page |
Example request
curl -X GET \
"https://col.wageapi.com/api/v1/prices/us/metro-areas?page=1&page_size=50" \
-H "X-API-Key: YOUR_API_KEY"Responses
dataarray<MetroAreaSummary>requiredarea_codestringrequiredarea_namestringrequiredrpp_overallanyoptionalRegional Price Parity (overall)
latest_yearanyoptionalmetadataMetadataSchemarequiredsourcesarray<SourceSchema>optionalnamestringrequiredData source name (e.g., 'BLS', 'OECD', 'Eurostat')
datasetstringrequiredSpecific dataset identifier
urlanyoptionalURL to the source dataset
last_updatedanyoptionalWhen this data was last refreshed
request_idstringrequiredUnique request identifier
rate_limitanyoptionalremainingintegerrequiredRemaining requests today
daily_limitintegerrequiredTotal daily request limit
reset_atstring (date-time)requiredWhen the rate limit resets
paginationanyoptionalpageintegerrequiredpage_sizeintegerrequiredtotalintegerrequiredtotal_pagesintegerrequireddata_vintageanyoptionalData freshness (e.g., 'CPI data from February 2026')
methodology_notesanyoptionalMethodology notes (e.g., 'CPI rebased to 2020=100')
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusintegerrequiredHTTP status code
request_idstringrequiredRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusintegerrequiredHTTP status code
request_idstringrequiredRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusintegerrequiredHTTP status code
request_idstringrequiredRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusintegerrequiredHTTP status code
request_idstringrequiredRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
errorErrorDetailrequiredStructured error payload returned by all Aethar APIs. Mirrors the shape produced by aethar_auth.exception_handlers so the OpenAPI spec accurately describes real error bodies for documentation readers and MCP clients.
codestringrequiredMachine-readable error code (e.g. INVALID_API_KEY)
messagestringrequiredHuman-readable error message
statusintegerrequiredHTTP status code
request_idstringrequiredRequest identifier — include in support tickets
suggestionanyoptionalActionable hint on how to resolve the error
doc_urlanyoptionalLink to full documentation for this error code
fieldanyoptionalField that caused the error (if applicable)
errorsanyoptionalPer-field validation errors (only for 422 VALIDATION_ERROR responses)
Try this endpoint
Create a free Aethar account and generate an API key in 2 minutes.
Create free account →