Obscura

FRED Series

Series from the Federal Reserve's FRED database by series ID — rates, prices, output, employment and more — as a point-in-time panel: every value carries the date it was actually published, and a later revision is a new row rather than an overwrite, so you can reconstruct exactly what was knowable on any past date.

fred_series — the dataset name to pass to the Obscura API.

Category Macro Columns 5 Refresh Every weekday Entity key series_id Point-in-time available_date

What one row means

One FRED series value for one reference period AS IT STOOD ON ONE VINTAGE DATE — e.g. (CPIAUCSL, period 2026-06-01, published 2026-07-14, 332.568), and then a second row (CPIAUCSL, period 2026-06-01, published 2026-08-12, 332.6) when BLS restates it. Sourced from ALFRED's real-time observations endpoint (`fred/series/observations` with an unbounded `realtime_start`/`realtime_end` window), which returns the full revision panel rather than the latest-only snapshot the keyless CSV export serves.

One row per (series_id, period_end, available_date).

Point-in-time availability

Every Obscura dataset carries available_date: the calendar day the publisher made the row available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the same thing on every dataset in the catalog.

For fred_series: published: available_date is ALFRED's `realtime_start` — the real-time period start, i.e. the day FRED first served THIS value for THIS reference period. It is a genuine dissemination date read straight off the source, never a period date. Observations that predate the series' first ALFRED vintage are clamped by the source to that first vintage date, which is still the earliest date they are demonstrably public, so the column is never look-ahead.

Refresh cadence

Obscura refreshes fred_series every weekday — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.

Schema — 5 columns

The full public column list for fred_series, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/fred_series.

ColumnTypeDescription
series_idtext · not nullFRED series mnemonic, verbatim (e.g. "DGS10" = 10y Treasury constant maturity rate, "UNRATE" = civilian unemployment rate, "CPIAUCSL" = CPI for all urban consumers). Part of the composite primary key.
period_enddate · not nullThe REFERENCE PERIOD this value describes — FRED's `observation_date`, verbatim. FRED labels a period by its first day, so a monthly series carries the 1st of the month and a quarterly series the 1st of the quarter; a daily series carries the day itself. This is a period/as-of date and is NEVER the date the value became public. Part of the composite primary key.
available_datedate · not nullPUBLIC-availability date = ALFRED's `realtime_start` for this value: the day FRED first served THIS number for THIS reference period. The point-in-time column to filter and join on. Part of the composite primary key, which is what makes a revision APPEND a new row rather than overwrite the number a backtest would have seen at the time.
valuedouble precisionThe series' reported value for `period_end` as published on `available_date`, in that series' own native unit (percent, index level, thousands of persons, billions of chained dollars, etc. — not normalized or stored here). NULL for FRED's "." missing-observation marker.
revised_atdateVintage marker: NULL when this row is the series' FIRST published value for `period_end`, and the restatement date (= `available_date`) when it is a later revision of a number FRED had already published. Lets a consumer separate "initial release" from "restated" without a self-join, and makes the revision history explicit rather than implied.

Access fred_series

Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.

import obscura

client = obscura.Client("obs_live_…")

df = client.query(
    dataset="fred_series",
    symbols=["NVDA", "AAPL"],
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the fred_series dataset?

Series from the Federal Reserve's FRED database by series ID — rates, prices, output, employment and more — as a point-in-time panel: every value carries the date it was actually published, and a later revision is a new row rather than an overwrite, so you can reconstruct exactly what was knowable on any past date. One FRED series value for one reference period AS IT STOOD ON ONE VINTAGE DATE — e.g. (CPIAUCSL, period 2026-06-01, published 2026-07-14, 332.568), and then a second row (CPIAUCSL, period 2026-06-01, published 2026-08-12, 332.6) when BLS restates it. Sourced from ALFRED's real-time observations endpoint (`fred/series/observations` with an unbounded `realtime_start`/`realtime_end` window), which returns the full revision panel rather than the latest-only snapshot the keyless CSV export serves.

How do I avoid look-ahead bias with fred_series?

Filter on fred_series.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — published: available_date is ALFRED's `realtime_start` — the real-time period start, i.e. the day FRED first served THIS value for THIS reference period. It is a genuine dissemination date read straight off the source, never a period date. Observations that predate the series' first ALFRED vintage are clamped by the source to that first vintage date, which is still the earliest date they are demonstrably public, so the column is never look-ahead. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get fred_series?

As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="fred_series". The column schema is public at https://api.obscura.trade/v1/catalog/fred_series.

Can I filter fred_series by company or symbol?

Yes. fred_series carries series_id, the column the API's symbols filter resolves against.

How often is fred_series updated?

Obscura refreshes fred_series on a every weekday schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.

Related datasets

BLS SeriesEconomic series from the U.S. Bureau of Labor Statistics, fetched by series ID: employment, unemployment, CPI, PPI, wage… Comtrade FlowsAnnual bilateral goods-trade totals between countries, from UN Comtrade. ECB SeriesEuropean Central Bank Data Portal series, retrieved by series key. IMF IndicatorsCountry-level macro indicators from the IMF's DataMapper. ONS SeriesUK macroeconomic series from the Office for National Statistics. Policy RatesThe policy interest rate set by each currency's monetary authority, on every calendar day back to 1946 — twenty currenci… Treasury Average RatesAverage interest rates the U.S. Treasury pays on its outstanding debt, by security type. Treasury DebtTotal U.S. public debt outstanding, updated daily ('debt to the penny').