Skip to main content

A Python library for the FRED API (Federal Reserve Bank of St. Louis)

Project description

fred-stl

A Python library for the FRED API (Federal Reserve Economic Data, St. Louis Fed).

Work in progress — the library is being built incrementally. New endpoint groups are added with each minor release.

Installation

pip install fred-stl

Requirements

Quick start

import json
import urllib.parse
import urllib.request

from fred import category, for_request

params = category.RequestParams(
    api_key="your-api-key",
    file_type=category.FileType.json,
    category_id=0,
)

url = f"{category.ENDPOINT}?{urllib.parse.urlencode(for_request(params))}"

with urllib.request.urlopen(url) as resp:
    data = json.loads(resp.read())

response = category.Response.model_validate(data)
print(response.categories[0].name)  # "Categories"

Usage

Each FRED endpoint is exposed as a module at the top level of the fred package. Every module provides:

  • RequestParams — a typed, validated model for building requests
  • Response — a typed, validated model for parsing responses
  • ENDPOINT — the API endpoint URL
  • Any enum types needed to construct a request (e.g. FileType, SortOrder)

Use for_request to convert a RequestParams instance into a dict[str, str] ready for any HTTP client:

from fred import for_request, releases

params = releases.RequestParams(
    api_key="your-api-key",
    file_type=releases.FileType.json,
)

query = for_request(params)  # {"api_key": "...", "file_type": "json", ...}

Available endpoints

Category

Module Endpoint
category fred/category
category_children fred/category/children
category_related fred/category/related
category_series fred/category/series
category_tags fred/category/tags
category_related_tags fred/category/related_tags

Releases

Module Endpoint
releases fred/releases
releases_dates fred/releases/dates
release fred/release
release_dates fred/release/dates
release_series fred/release/series
release_sources fred/release/sources
release_tags fred/release/tags
release_related_tags fred/release/related_tags
release_tables fred/release/tables

Contributing

See CONTRIBUTING.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fred_stl-0.2.4.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fred_stl-0.2.4-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

Details for the file fred_stl-0.2.4.tar.gz.

File metadata

  • Download URL: fred_stl-0.2.4.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fred_stl-0.2.4.tar.gz
Algorithm Hash digest
SHA256 26513a27c843a860519acfbb7e964c0c96683af848cead3e34500dacb7329865
MD5 5bb353c06ae3f4c2776b3257fa67df60
BLAKE2b-256 b8c508efa3555f20cf86a547f1df2983f14455451b6b9fefc80c5b5b95feab5a

See more details on using hashes here.

File details

Details for the file fred_stl-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: fred_stl-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 38.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fred_stl-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d5c8b6a42158af58858b6d60cb99c48023562f303a0dd11dbb93eed396557bb0
MD5 f24cf34508f89016323ff8d15a2e5130
BLAKE2b-256 880d52d9ade3fbf782eee6f754c337d04d9d1eb5c536a1c77023104388e8c3ef

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page