/v1/cpi/countries/{country_code}/historyGet the monthly CPI time series for a country
Return the monthly Consumer Price Index time series for a country, optionally narrowed by date range and category. Use this endpoint for trend analysis, chart rendering, or historical inflation lookups that reach further back than the single-snapshot `GET /v1/cpi/countries/{code}` endpoint. **Filters:** - `start_date` / `end_date` — inclusive ISO dates (YYYY-MM-DD). Omit for the full available series. - `category` — a CPI category code. Use `SA0` for all-items (default), `SAF` for food, `SAH` for housing, `SAT` for transport, etc. Call `GET /v1/cpi/categories` to discover the full list. **Response shape:** a `CpiHistoryResponse` containing the country code, requested category, and a list of monthly observations (`date`, `value`). Source: BLS CPI (US), Eurostat HICP (EU), OECD CPI. Required scope: `costapi:read`.
Authentication
Requires API key via X-API-Key header.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| country_code | path | string | required | 2- or 3-letter uppercase ISO country code (e.g. US, DEU) |
| start_date | query | any | optional | Start date (YYYY-MM-DD, inclusive) |
| end_date | query | any | optional | End date (YYYY-MM-DD, inclusive) |
| category | query | any | optional | CPI category code (SA0 = all items, SAF = food, SAH = housing, SAT = transport) |
Example request
curl -X GET \
"https://col.wageapi.com/api/v1/cpi/countries/DE/history?start_date=%3Cstart_date%3E&end_date=%3Cend_date%3E&category=%3Ccategory%3E" \
-H "X-API-Key: YOUR_API_KEY"Responses
dataCpiHistoryResponserequiredcountry_codestringrequiredcountry_namestringrequiredseries_idstringrequiredobservationsarray<CpiObservationSchema>optionalperiodstring (date)requiredvaluenumberrequiredflagsanyoptionaltruncatedbooleanoptionalTrue if results were truncated due to limit
default false
metadataMetadataSchemarequiredsourcesarray<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)
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 →