From 51f19eba6e7fadf6074f2ee3f6d34cee368d99e7 Mon Sep 17 00:00:00 2001 From: Danglewood <85772166+deeleeramone@users.noreply.github.com> Date: Fri, 18 Apr 2025 00:08:55 -0700 Subject: [PATCH] [Feature] Adds Empire State Manufacturing Survey (FRED) (#7086) * add empire state manufacturing survey from fred * lint * lint * set sa default as False * test * test cassettes --- .../economy/integration/test_economy_api.py | 32 +- .../integration/test_economy_python.py | 29 +- .../openbb_economy/survey/survey_router.py | 43 + openbb_platform/openbb/assets/reference.json | 505 ++++++--- .../openbb/package/economy_survey.py | 147 ++- .../providers/fred/openbb_fred/__init__.py | 4 + .../models/manufacturing_outlook_ny.py | 557 ++++++++++ ...cturing_outlook_ny_fetcher_urllib3_v1.yaml | 954 ++++++++++++++++++ ...cturing_outlook_ny_fetcher_urllib3_v2.yaml | 904 +++++++++++++++++ .../fred/tests/test_fred_fetchers.py | 17 + 10 files changed, 3021 insertions(+), 171 deletions(-) create mode 100644 openbb_platform/providers/fred/openbb_fred/models/manufacturing_outlook_ny.py create mode 100644 openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v1.yaml create mode 100644 openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v2.yaml diff --git a/openbb_platform/extensions/economy/integration/test_economy_api.py b/openbb_platform/extensions/economy/integration/test_economy_api.py index 7980412a5c4..76883635de7 100644 --- a/openbb_platform/extensions/economy/integration/test_economy_api.py +++ b/openbb_platform/extensions/economy/integration/test_economy_api.py @@ -118,7 +118,7 @@ def test_economy_cpi(params, headers): @parametrize( "params", - [({"provider": "fmp"})], + [{"provider": "fmp"}], ) @pytest.mark.integration def test_economy_risk_premium(params, headers): @@ -939,7 +939,7 @@ def test_economy_survey_economic_conditions_chicago(params, headers): ( { "provider": "fred", - "topic": "business_outlook,new_orders", + "topic": "new_orders", "start_date": "2024-01-01", "end_date": "2024-04-01", "transform": None, @@ -961,6 +961,34 @@ def test_economy_survey_manufacturing_outlook_texas(params, headers): assert result.status_code == 200 +@parametrize( + "params", + [ + ( + { + "provider": "fred", + "topic": "new_orders", + "start_date": "2024-01-01", + "end_date": "2024-04-01", + "transform": None, + "aggregation_method": None, + "frequency": None, + } + ), + ], +) +@pytest.mark.integration +def test_economy_survey_manufacturing_outlook_ny(params, headers): + """Test the economy survey manufacturing outlook ny endpoint""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/economy/survey/manufacturing_outlook_ny?{query_str}" + result = requests.get(url, headers=headers, timeout=10) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + @parametrize( "params", [ diff --git a/openbb_platform/extensions/economy/integration/test_economy_python.py b/openbb_platform/extensions/economy/integration/test_economy_python.py index be16ac17f8d..7e16b169d64 100644 --- a/openbb_platform/extensions/economy/integration/test_economy_python.py +++ b/openbb_platform/extensions/economy/integration/test_economy_python.py @@ -904,7 +904,7 @@ def test_economy_survey_economic_conditions_chicago(params, obb): ( { "provider": "fred", - "topic": "business_outlook,new_orders", + "topic": "new_orders", "start_date": "2024-01-01", "end_date": "2024-04-01", "transform": None, @@ -925,6 +925,33 @@ def test_economy_survey_manufacturing_outlook_texas(params, obb): assert len(result.results) > 0 +@parametrize( + "params", + [ + ( + { + "provider": "fred", + "topic": "new_orders", + "start_date": "2024-01-01", + "end_date": "2024-04-01", + "transform": None, + "aggregation_method": None, + "frequency": None, + } + ), + ], +) +@pytest.mark.integration +def test_economy_survey_manufacturing_outlook_ny(params, obb): + """Test the economy survey manufacturing outlook ny endpoint""" + params = {p: v for p, v in params.items() if v} + + result = obb.economy.survey.manufacturing_outlook_ny(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + + @parametrize( "params", [ diff --git a/openbb_platform/extensions/economy/openbb_economy/survey/survey_router.py b/openbb_platform/extensions/economy/openbb_economy/survey/survey_router.py index c99880c7e9e..854961ccdf2 100644 --- a/openbb_platform/extensions/economy/openbb_economy/survey/survey_router.py +++ b/openbb_platform/extensions/economy/openbb_economy/survey/survey_router.py @@ -133,6 +133,49 @@ async def manufacturing_outlook_texas( return await OBBject.from_query(Query(**locals())) +@router.command( + model="ManufacturingOutlookNY", + examples=[ + APIEx(parameters={"provider": "fred"}), + APIEx( + parameters={ + "topic": "hours_worked,new_orders", + "transform": "pc1", + "provider": "fred", + "seasonally_adjusted": True, + } + ), + ], + openapi_extra={ + "widget_config": { + "name": "Empire State Manufacturing Survey", + } + }, +) +async def manufacturing_outlook_ny( + cc: CommandContext, + provider_choices: ProviderChoices, + standard_params: StandardParams, + extra_params: ExtraParams, +) -> OBBject: + """Get the Empire State Manufacturing Survey. + + It is a monthly survey of manufacturers in New York State conducted by the Federal Reserve Bank of New York. + + Participants from across the state in a variety of industries respond to a questionnaire + and report the change in a variety of indicators from the previous month. + + Respondents also state the likely direction of these same indicators six months ahead. + April 2002 is the first report, although survey data date back to July 2001. + + The survey is sent on the first day of each month to the same pool of about 200 + manufacturing executives in New York State, typically the president or CEO. + + About 100 responses are received. Most are completed by the tenth, although surveys are accepted until the fifteenth. + """ + return await OBBject.from_query(Query(**locals())) + + @router.command( model="NonFarmPayrolls", examples=[ diff --git a/openbb_platform/openbb/assets/reference.json b/openbb_platform/openbb/assets/reference.json index 24ee5ddabd0..674cefe53f5 100644 --- a/openbb_platform/openbb/assets/reference.json +++ b/openbb_platform/openbb/assets/reference.json @@ -46,7 +46,7 @@ "message": null }, "description": "Commodity Spot Prices.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.commodity.price.spot(provider='fred')\nobb.commodity.price.spot(provider='fred', commodity=wti)\n```\n\n", "parameters": { "standard": [ { @@ -228,7 +228,7 @@ "message": null }, "description": "EIA Weekly Petroleum Status Report.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# Get the EIA's Weekly Petroleum Status Report.\nobb.commodity.petroleum_status_report(provider='eia')\n# Select the category of data, and filter for a specific table within the report.\nobb.commodity.petroleum_status_report(category=weekly_estimates, table=imports, provider='eia')\n```\n\n", "parameters": { "standard": [ { @@ -430,7 +430,7 @@ "message": null }, "description": "Monthly short term (18 month) projections using EIA's STEO model.\n\nSource: www.eia.gov/steo/", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# Get the EIA's Short Term Energy Outlook.\nobb.commodity.short_term_energy_outlook(provider='eia')\n# Select the specific table of data from the STEO. Table 03d is World Crude Oil Production.\nobb.commodity.short_term_energy_outlook(table=03d, provider='eia')\n```\n\n", "parameters": { "standard": [ { @@ -609,7 +609,7 @@ "message": null }, "description": "Get historical price data for cryptocurrency pair(s) within a provider.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.crypto.price.historical(symbol='BTCUSD', provider='fmp')\nobb.crypto.price.historical(symbol='BTCUSD', start_date='2024-01-01', end_date='2024-01-31', provider='fmp')\nobb.crypto.price.historical(symbol='BTCUSD,ETHUSD', start_date='2024-01-01', end_date='2024-01-31', provider='polygon')\n# Get monthly historical prices from Yahoo Finance for Ethereum.\nobb.crypto.price.historical(symbol='ETH-USD', interval=1m, start_date='2024-01-01', end_date='2024-12-31', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -891,7 +891,7 @@ "message": null }, "description": "Search available cryptocurrency pairs within a provider.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.crypto.search(provider='fmp')\nobb.crypto.search(query='BTCUSD', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -991,7 +991,7 @@ "message": null }, "description": "Currency Historical Price. Currency historical data.\n\nCurrency historical prices refer to the past exchange rates of one currency against\nanother over a specific period.\nThis data provides insight into the fluctuations and trends in the foreign exchange market,\nhelping analysts, traders, and economists understand currency performance,\nevaluate economic health, and make predictions about future movements.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.currency.price.historical(symbol='EURUSD', provider='fmp')\n# Filter historical data with specific start and end date.\nobb.currency.price.historical(symbol='EURUSD', start_date='2023-01-01', end_date='2023-12-31', provider='fmp')\n# Get data with different granularity.\nobb.currency.price.historical(symbol='EURUSD', provider='polygon', interval=15m)\n```\n\n", "parameters": { "standard": [ { @@ -1248,7 +1248,7 @@ "message": null }, "description": "Currency Search.\n\nSearch available currency pairs.\nCurrency pairs are the national currencies from two countries coupled for trading on\nthe foreign exchange (FX) marketplace.\nBoth currencies will have exchange rates on which the trade will have its position basis.\nAll trading within the forex market, whether selling, buying, or trading, will take place through currency pairs.\n(ref: Investopedia)\nMajor currency pairs include pairs such as EUR/USD, USD/JPY, GBP/USD, etc.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.currency.search(provider='fmp')\n# Search for 'EUR' currency pair using 'intrinio' as provider.\nobb.currency.search(provider='intrinio', query='EUR')\n# Search for terms using 'polygon' as provider.\nobb.currency.search(provider='polygon', query='EUR')\n```\n\n", "parameters": { "standard": [ { @@ -1434,7 +1434,7 @@ "message": null }, "description": "Snapshots of currency exchange rates from an indirect or direct perspective of a base currency.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.currency.snapshots(provider='fmp')\n# Get exchange rates from USD and XAU to EUR, JPY, and GBP using 'fmp' as provider.\nobb.currency.snapshots(provider='fmp', base='USD,XAU', counter_currencies='EUR,JPY,GBP', quote_type='indirect')\n```\n\n", "parameters": { "standard": [ { @@ -1801,7 +1801,7 @@ "message": null }, "description": "Get the complete options chain for a ticker.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.derivatives.options.chains(symbol='AAPL', provider='intrinio')\n# Use the \"date\" parameter to get the end-of-day-data for a specific date, where supported.\nobb.derivatives.options.chains(symbol='AAPL', date=2023-01-25, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -2414,7 +2414,7 @@ "message": null }, "description": "Get the complete options chain for a ticker.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.derivatives.options.unusual(symbol='TSLA', provider='intrinio')\n# Use the 'symbol' parameter to get the most recent activity for a specific symbol.\nobb.derivatives.options.unusual(symbol='TSLA', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -2627,7 +2627,7 @@ "message": null }, "description": "Get a snapshot of the options market universe.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.derivatives.options.snapshots(provider='intrinio')\n```\n\n", "parameters": { "standard": [], "intrinio": [ @@ -2911,7 +2911,7 @@ "message": null }, "description": "Historical futures prices.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.derivatives.futures.historical(symbol='ES', provider='yfinance')\n# Enter multiple symbols.\nobb.derivatives.futures.historical(symbol='ES,NQ', provider='yfinance')\n# Enter expiration dates as \"YYYY-MM\".\nobb.derivatives.futures.historical(symbol='ES', provider='yfinance', expiration='2025-12')\n```\n\n", "parameters": { "standard": [ { @@ -3051,7 +3051,7 @@ "message": null }, "description": "Futures Term Structure, current or historical.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.derivatives.futures.curve(symbol='NG', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -3142,7 +3142,7 @@ "message": null }, "description": "Get Forecasted GDP Data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.gdp.forecast(provider='oecd')\nobb.economy.gdp.forecast(country=united_states,germany,france, frequency=annual, units=capita, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -3319,7 +3319,7 @@ "message": null }, "description": "Get Nominal GDP Data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.gdp.nominal(provider='oecd')\nobb.economy.gdp.nominal(units=capita, country=all, frequency=annual, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -3556,7 +3556,7 @@ "message": null }, "description": "Get Real GDP Data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.gdp.real(provider='oecd')\nobb.economy.gdp.real(country=united_states,germany,japan, provider='econdb')\n```\n\n", "parameters": { "standard": [ { @@ -3770,7 +3770,7 @@ "message": null }, "description": "Get time series data for one, or more, BLS series IDs.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.bls_series(provider='bls', symbol='CES0000000001')\n```\n\n", "parameters": { "standard": [ { @@ -3983,7 +3983,7 @@ "message": null }, "description": "Search BLS surveys by category and keyword or phrase to identify BLS series IDs.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.bls_search(provider='bls', category=cpi)\n# Use semi-colon to separate multiple queries as an & operator.\nobb.economy.survey.bls_search(provider='bls', category=cpi, query='seattle;gasoline')\n```\n\n", "parameters": { "standard": [ { @@ -4105,7 +4105,7 @@ "message": null }, "description": "Get Senior Loan Officers Opinion Survey.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.sloos(provider='fred')\nobb.economy.survey.sloos(category=credit_card, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -4241,7 +4241,7 @@ "message": null }, "description": "Get University of Michigan Consumer Sentiment and Inflation Expectations Surveys.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.university_of_michigan(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -4264,7 +4264,7 @@ "fred": [ { "name": "frequency", - "type": "Literal['annual', 'quarter']", + "type": "Literal['quarter', 'annual']", "description": "Frequency aggregation to convert monthly data to lower frequency. None is monthly.", "default": null, "optional": true, @@ -4373,7 +4373,7 @@ "message": null }, "description": "Get The Survey Of Economic Conditions For The Chicago Region.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.economic_conditions_chicago(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -4561,7 +4561,7 @@ "message": null }, "description": "Get The Manufacturing Outlook Survey For The Texas Region.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.manufacturing_outlook_texas(provider='fred')\nobb.economy.survey.manufacturing_outlook_texas(topic=business_outlook,new_orders, transform=pc1, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -4734,13 +4734,184 @@ "model": "ManufacturingOutlookTexas" } }, + "/economy/survey/manufacturing_outlook_ny": { + "deprecated": { + "flag": null, + "message": null + }, + "description": "Get the Empire State Manufacturing Survey.\n\nIt is a monthly survey of manufacturers in New York State conducted by the Federal Reserve Bank of New York.\n\nParticipants from across the state in a variety of industries respond to a questionnaire\nand report the change in a variety of indicators from the previous month.\n\nRespondents also state the likely direction of these same indicators six months ahead.\nApril 2002 is the first report, although survey data date back to July 2001.\n\nThe survey is sent on the first day of each month to the same pool of about 200\nmanufacturing executives in New York State, typically the president or CEO.\n\nAbout 100 responses are received. Most are completed by the tenth, although surveys are accepted until the fifteenth.", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.manufacturing_outlook_ny(provider='fred')\nobb.economy.survey.manufacturing_outlook_ny(topic=hours_worked,new_orders, transform=pc1, provider='fred', seasonally_adjusted=True)\n```\n\n", + "parameters": { + "standard": [ + { + "name": "start_date", + "type": "Union[date, str]", + "description": "Start date of the data, in YYYY-MM-DD format.", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "end_date", + "type": "Union[date, str]", + "description": "End date of the data, in YYYY-MM-DD format.", + "default": null, + "optional": true, + "choices": null + } + ], + "fred": [ + { + "name": "topic", + "type": "Union[Union[Literal['business_outlook', 'hours_worked', 'employment', 'inventories', 'prices_received', 'prices_paid', 'capex', 'unfilled_orders', 'new_orders', 'shipments', 'delivery_times'], str], list[Union[Literal['business_outlook', 'hours_worked', 'employment', 'inventories', 'prices_received', 'prices_paid', 'capex', 'unfilled_orders', 'new_orders', 'shipments', 'delivery_times'], str]]]", + "description": "The topic for the survey response. Multiple items allowed for provider(s): fred.", + "default": "new_orders", + "optional": true, + "choices": [ + "business_outlook", + "hours_worked", + "employment", + "inventories", + "prices_received", + "prices_paid", + "capex", + "unfilled_orders", + "new_orders", + "shipments", + "delivery_times" + ] + }, + { + "name": "seasonally_adjusted", + "type": "bool", + "description": "Whether the data is seasonally adjusted, default is False", + "default": false, + "optional": true, + "choices": null + }, + { + "name": "frequency", + "type": "Literal['quarter', 'annual']", + "description": "Frequency aggregation to convert monthly data to lower frequency. None is monthly.", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "aggregation_method", + "type": "Literal['avg', 'sum', 'eop']", + "description": "A key that indicates the aggregation method used for frequency aggregation.\n avg = Average\n sum = Sum\n eop = End of Period", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "transform", + "type": "Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']", + "description": "Transformation type\n None = No transformation\n chg = Change\n ch1 = Change from Year Ago\n pch = Percent Change\n pc1 = Percent Change from Year Ago\n pca = Compounded Annual Rate of Change\n cch = Continuously Compounded Rate of Change\n cca = Continuously Compounded Annual Rate of Change\n log = Natural Log", + "default": null, + "optional": true, + "choices": null + } + ] + }, + "returns": { + "OBBject": [ + { + "name": "results", + "type": "list[ManufacturingOutlookNY]", + "description": "Serializable results." + }, + { + "name": "provider", + "type": "Optional[Literal['fred']]", + "description": "Provider name." + }, + { + "name": "warnings", + "type": "Optional[list[Warning_]]", + "description": "list of warnings." + }, + { + "name": "chart", + "type": "Optional[Chart]", + "description": "Chart object." + }, + { + "name": "extra", + "type": "dict[str, Any]", + "description": "Extra info." + } + ] + }, + "data": { + "standard": [ + { + "name": "date", + "type": "Union[date, str]", + "description": "The date of the data.", + "default": "", + "optional": false, + "choices": null + }, + { + "name": "topic", + "type": "str", + "description": "Topic of the survey response.", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "diffusion_index", + "type": "float", + "description": "Diffusion Index.", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "percent_reporting_increase", + "type": "float", + "description": "Percent of respondents reporting an increase over the last month.", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "percent_reporting_decrease", + "type": "float", + "description": "Percent of respondents reporting a decrease over the last month.", + "default": null, + "optional": true, + "choices": null + }, + { + "name": "percent_reporting_no_change", + "type": "float", + "description": "Percent of respondents reporting no change over the last month.", + "default": null, + "optional": true, + "choices": null + } + ], + "fred": [] + }, + "model": "ManufacturingOutlookNY", + "openapi_extra": { + "widget_config": { + "name": "Empire State Manufacturing Survey" + }, + "model": "ManufacturingOutlookNY" + } + }, "/economy/survey/nonfarm_payrolls": { "deprecated": { "flag": null, "message": null }, "description": "Get Nonfarm Payrolls Survey.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.survey.nonfarm_payrolls(provider='fred')\nobb.economy.survey.nonfarm_payrolls(category=avg_hours, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -4891,7 +5062,7 @@ "message": null }, "description": "Get the upcoming, or historical, economic calendar of global events.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# By default, the calendar will be forward-looking.\nobb.economy.calendar(provider='fmp')\nobb.economy.calendar(provider='fmp', start_date='2020-03-01', end_date='2020-03-31')\n```\n\n", "parameters": { "standard": [ { @@ -5419,7 +5590,7 @@ "message": null }, "description": "Get Consumer Price Index (CPI).\n\nReturns either the rescaled index value, or a rate of change (inflation).", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.cpi(country='japan,china,turkey', provider='fred')\n# Use the `transform` parameter to define the reference period for the change in values. Default is YoY.\nobb.economy.cpi(country='united_states,united_kingdom', transform='period', provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -5618,7 +5789,7 @@ "message": null }, "description": "Get Market Risk Premium by country.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.risk_premium(provider='fmp')\n```\n\n", "parameters": { "standard": [], "fmp": [] @@ -5700,7 +5871,7 @@ "message": null }, "description": "Balance of Payments Reports.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.balance_of_payments(provider='fred')\nobb.economy.balance_of_payments(provider='fred', country=brazil)\n```\n\n", "parameters": { "standard": [], "fred": [ @@ -5992,7 +6163,7 @@ "message": null }, "description": "Search for FRED series or economic releases by ID or string.\n\nThis does not return the observation values, only the metadata.\nUse this function to find series IDs for `fred_series()`.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.fred_search(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -6334,7 +6505,7 @@ "message": null }, "description": "Get data by series ID from FRED.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.fred_series(symbol='NFCI', provider='fred')\n# Multiple series can be passed in as a list.\nobb.economy.fred_series(symbol='NFCI,STLFSI4', provider='fred')\n# Use the `transform` parameter to transform the data as change, log, or percent change.\nobb.economy.fred_series(symbol='CBBTCUSD', transform=pc1, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -6514,7 +6685,7 @@ "message": null }, "description": "Get economic release data by ID and/or element from FRED.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# Get the top-level elements of a release by not supplying an element ID.\nobb.economy.fred_release_table(release_id='50', provider='fred')\n# Drill down on a specific section of the release.\nobb.economy.fred_release_table(release_id='50', element_id='4880', provider='fred')\n# Drill down on a specific table of the release.\nobb.economy.fred_release_table(release_id='50', element_id='4881', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -6669,7 +6840,7 @@ "message": null }, "description": "Get Money Measures (M1/M2 and components).\n\nThe Federal Reserve publishes as part of the H.6 Release.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.money_measures(provider='federal_reserve')\nobb.economy.money_measures(adjusted=False, provider='federal_reserve')\n```\n\n", "parameters": { "standard": [ { @@ -6808,7 +6979,7 @@ "message": null }, "description": "Get global unemployment data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.unemployment(provider='oecd')\nobb.economy.unemployment(country='all', frequency='quarter', provider='oecd')\n# Demographics for the statistics are selected with the `age` parameter.\nobb.economy.unemployment(country='all', frequency='quarter', age=total, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -6960,7 +7131,7 @@ "message": null }, "description": "Get the composite leading indicator (CLI).\n\nIt is designed to provide early signals of turning points\nin business cycles showing fluctuation of the economic activity around its long term potential level.\n\nCLIs show short-term economic movements in qualitative rather than quantitative terms.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.composite_leading_indicator(provider='oecd')\nobb.economy.composite_leading_indicator(country=all, provider='oecd', growth_rate=True)\n```\n\n", "parameters": { "standard": [ { @@ -7100,7 +7271,7 @@ "message": "This endpoint will be removed in a future version. Use, `/economy/interest_rates`, instead. Deprecated in OpenBB Platform V4.3 to be removed in V4.5." }, "description": "Get Short-term interest rates.\n\nThey are the rates at which short-term borrowings are effected between\nfinancial institutions or the rate at which short-term government paper is issued or traded in the market.\n\nShort-term interest rates are generally averages of daily rates, measured as a percentage.\nShort-term interest rates are based on three-month money market rates where available.\nTypical standardised names are \"money market rate\" and \"treasury bill rate\".", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.short_term_interest_rate(provider='oecd')\nobb.economy.short_term_interest_rate(country=all, frequency=quarterly, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -7208,7 +7379,7 @@ "message": "This endpoint will be removed in a future version. Use, `/economy/interest_rates`, instead. Deprecated in OpenBB Platform V4.3 to be removed in V4.5." }, "description": "Get Long-term interest rates that refer to government bonds maturing in ten years.\n\nRates are mainly determined by the price charged by the lender, the risk from the borrower and the\nfall in the capital value. Long-term interest rates are generally averages of daily rates,\nmeasured as a percentage. These interest rates are implied by the prices at which the government bonds are\ntraded on financial markets, not the interest rates at which the loans were issued.\nIn all cases, they refer to bonds whose capital repayment is guaranteed by governments.\nLong-term interest rates are one of the determinants of business investment.\nLow long-term interest rates encourage investment in new equipment and high interest rates discourage it.\nInvestment is, in turn, a major source of economic growth.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.long_term_interest_rate(provider='oecd')\nobb.economy.long_term_interest_rate(country=all, frequency=quarterly, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -7316,7 +7487,7 @@ "message": null }, "description": "Query the Geo Fred API for regional economic data by series group.\n\nThe series group ID is found by using `fred_search` and the `series_id` parameter.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.fred_regional(symbol='NYICLAIMS', provider='fred')\n# With a date, time series data is returned.\nobb.economy.fred_regional(symbol='NYICLAIMS', start_date='2021-01-01', end_date='2021-12-31', limit=10, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -7546,7 +7717,7 @@ "message": null }, "description": "Get a profile of country statistics and economic indicators.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.country_profile(provider='econdb', country='united_kingdom')\n# Enter the country as the full name, or iso code. If `latest` is False, the complete history for each series is returned.\nobb.economy.country_profile(country='united_states,jp', latest=False, provider='econdb')\n```\n\n", "parameters": { "standard": [ { @@ -7734,7 +7905,7 @@ "message": null }, "description": "Get the available economic indicators for a provider.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.available_indicators(provider='econdb')\n```\n\n", "parameters": { "standard": [], "econdb": [ @@ -7966,7 +8137,7 @@ "message": null }, "description": "Get economic indicators by country and indicator.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.indicators(provider='econdb', symbol=PCOCO)\n# Enter the country as the full name, or iso code. Use `available_indicators()` to get a list of supported indicators from EconDB.\nobb.economy.indicators(symbol=CPI, country='united_states,jp', provider='econdb')\n# Use the `main` symbol to get the group of main indicators for a country.\nobb.economy.indicators(provider='econdb', symbol=main, country='eu')\n# When the provider is 'imf', the absence of a symbol will default to 'irfcl_top_lines'. Use 'IRFCL' to get all the data from the set of indicators.\nobb.economy.indicators(provider='imf')\n# When the provider is 'imf', complete tables are returned by using a 'preset'. Refer to the function's docstring for descriptions of each preset. When no country is supplied, the data is returned for all countries.\nobb.economy.indicators(provider='imf', symbol=gold_reserves)\n# When the provider is 'imf', multiple countries and symbols can be supplied. Enter countries as a two-letter ISO country code, or the country name in lower_snake_case.\nobb.economy.indicators(provider='imf', symbol=RAFA_USD,RAPFA_USD,RAFA_RAPFA_RO, country='us,china,jp,4f,gb', start_date='2010-01-01', end_date='2020-12-31', frequency=annual)\n# When the provider is 'imf', additional presets return the core Financial Soundness Indicators.\n 'fsi_core' - Core FSIs\n 'fsi_encouraged_set' - Encouraged Set of FSIs,\n 'fsi_core_underlying' - Underlying data for the Core FSIs.\n 'fsi_other' - Additional/Other FSIs that are not in the Core or Encouraged Set.\n 'fsi_all' - all FSI data for a single country.\nobb.economy.indicators(provider='imf', symbol=fsi_encouraged_set, country='us,fr,gb', start_date='2022-01-01', end_date='2023-12-31', frequency=annual)\n```\n\n", "parameters": { "standard": [ { @@ -8411,7 +8582,7 @@ "message": null }, "description": "Get the balance sheet holdings of a central bank.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# The default is the latest Treasury securities held by the Federal Reserve.\nobb.economy.central_bank_holdings(provider='federal_reserve')\n# Get historical summaries of the Fed's holdings.\nobb.economy.central_bank_holdings(provider='federal_reserve', summary=True)\n# Get the balance sheet holdings as-of a historical date.\nobb.economy.central_bank_holdings(provider='federal_reserve', date='2019-05-21')\n# Use the `holding_type` parameter to select Agency securities, or specific categories or Treasury securities.\nobb.economy.central_bank_holdings(provider='federal_reserve', holding_type=agency_debts)\n```\n\n", "parameters": { "standard": [ { @@ -8714,7 +8885,7 @@ "message": null }, "description": "Get the Share Price Index by country from the OECD Short-Term Economics Statistics.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.share_price_index(provider='oecd')\n# Multiple countries can be passed in as a list.\nobb.economy.share_price_index(country='united_kingdom,germany', frequency='quarter', provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -8834,7 +9005,7 @@ "message": null }, "description": "Get the House Price Index by country from the OECD Short-Term Economics Statistics.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.house_price_index(provider='oecd')\n# Multiple countries can be passed in as a list.\nobb.economy.house_price_index(country='united_kingdom,germany', frequency='quarter', provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -8966,7 +9137,7 @@ "message": "This endpoint will be removed in a future version. Use, `/economy/interest_rates`, instead. Deprecated in OpenBB Platform V4.3 to be removed in V4.5." }, "description": "Get immediate interest rates by country.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.immediate_interest_rate(provider='oecd')\n# Multiple countries can be passed in as a list.\nobb.economy.immediate_interest_rate(country='united_kingdom,germany', frequency=monthly, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -9082,7 +9253,7 @@ "message": null }, "description": "Get interest rates by country(s) and duration.\nMost OECD countries publish short-term, a long-term, and immediate rates monthly.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.interest_rates(provider='oecd')\n# For OECD, duration can be 'immediate', 'short', or 'long'. Default is 'short', which is the 3-month rate. Overnight interbank rate is 'immediate', and 10-year rate is 'long'.\nobb.economy.interest_rates(provider='oecd', country='all', duration=immediate, frequency=quarter)\n# Multiple countries can be passed in as a list.\nobb.economy.interest_rates(duration=long, country='united_kingdom,germany', frequency=monthly, provider='oecd')\n```\n\n", "parameters": { "standard": [ { @@ -9256,7 +9427,7 @@ "message": null }, "description": "Get retail prices for common items.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.retail_prices(provider='fred')\n# The price of eggs in the northeast census region.\nobb.economy.retail_prices(item='eggs', region=northeast, provider='fred')\n# The percentage change in price, from one-year ago, of various meats, US City Average.\nobb.economy.retail_prices(item='meats', transform=pc1, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -9420,7 +9591,7 @@ "message": null }, "description": "Get Primary dealer positioning statistics.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.primary_dealer_positioning(provider='federal_reserve')\nobb.economy.primary_dealer_positioning(category=abs, provider='federal_reserve')\n```\n\n", "parameters": { "standard": [ { @@ -9551,7 +9722,7 @@ "message": null }, "description": "Get Personal Consumption Expenditures (PCE) reports.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.pce(provider='fred')\n# Get reports for multiple dates, entered as a comma-separated string.\nobb.economy.pce(provider='fred', date='2024-05-01,2024-04-01,2023-05-01', category=pce_price_index)\n```\n\n", "parameters": { "standard": [ { @@ -9701,7 +9872,7 @@ "message": null }, "description": "Get top export destinations by country from the UN Comtrade International Trade Statistics Database.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.export_destinations(provider='econdb', country='us')\n```\n\n", "parameters": { "standard": [ { @@ -9809,7 +9980,7 @@ "message": null }, "description": "Primary Dealer Statistics for Fails to Deliver and Fails to Receive.\n\nData from the NY Federal Reserve are updated on Thursdays at approximately\n4:15 p.m. with the previous week's statistics.\n\nFor research on the topic, see:\nhttps://www.federalreserve.gov/econres/notes/feds-notes/the-systemic-nature-of-settlement-fails-20170703.html\n\n\"Large and protracted settlement fails are believed to undermine the liquidity\nand well-functioning of securities markets.\n\nNear-100 percent pass-through of fails suggests a high degree of collateral\nre-hypothecation together with the inability or unwillingness to borrow or buy the needed securities.\"", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.primary_dealer_fails(provider='federal_reserve')\n# Transform the data to be percentage totals by asset class\nobb.economy.primary_dealer_fails(provider='federal_reserve', unit=percent)\n```\n\n", "parameters": { "standard": [ { @@ -9936,7 +10107,7 @@ "message": null }, "description": "Get average dwelling times and TEU volumes from the top ports.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.port_volume(provider='econdb')\n```\n\n", "parameters": { "standard": [ { @@ -10068,7 +10239,7 @@ "message": null }, "description": "Get Direction Of Trade Statistics from the IMF database.\n\nThe Direction of Trade Statistics (DOTS) presents the value of merchandise exports and\nimports disaggregated according to a country's primary trading partners.\nArea and world aggregates are included in the display of trade flows between major areas of the world.\nReported data is supplemented by estimates whenever such data is not available or current.\nImports are reported on a cost, insurance and freight (CIF) basis\nand exports are reported on a free on board (FOB) basis.\nTime series data includes estimates derived from reports of partner countries\nfor non-reporting and slow-reporting countries.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.direction_of_trade(provider='imf', country='all', counterpart='china')\n# Select multiple countries or counterparts by entering a comma-separated list. The direction of trade can be 'exports', 'imports', 'balance', or 'all'.\nobb.economy.direction_of_trade(provider='imf', country='us', counterpart='world,eu', frequency='annual', direction='exports')\n```\n\n", "parameters": { "standard": [ { @@ -10719,7 +10890,7 @@ "message": null }, "description": "Get FOMC documents by year and document type.\nOptionally, download the file directly from the Federal Reserve's website.\n\nSource: https://www.federalreserve.gov/monetarypolicy/fomc_historical.htm\nSource: https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm\n\nThis function does not return the typical OBBject response.\n\nThe response is `list[dict[str, str]]` of FOMC documents and their URLs.\n\nEach dictionary entry has keys: `date`, `url`, `doc_type`, and `doc_format`.\n\nIf `as_choices` is True, the response is a list of valid Workspace parameter choices.\nKeys, `label` and `value`, correspond with the `doc_type` + `date`, and the `url`, respectively.\n\nIf `url` was provided, the response is a `dict[str, Any]` with keys `filename`, `content`, and `data_format`.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.economy.fomc_documents(provider='federal_reserve')\n# Filter all documents by year.\nobb.economy.fomc_documents(provider='federal_reserve', year=2022)\n# Filter all documents by year and document type.\nobb.economy.fomc_documents(provider='federal_reserve', year=2022, document_type=minutes)\n# The `url` parameter will override all other parameters to download the document. The response will be a dictionary with keys `filename`, `content`, and `data_format`. PDF content will be a base64 encoded string of the document.\nobb.economy.fomc_documents(provider='federal_reserve', url=https://www.federalreserve.gov/monetarypolicy/files/fomcminutes20220126.pdf)\n```\n\n", "parameters": { "standard": [], "federal_reserve": [ @@ -10828,7 +10999,7 @@ "message": null }, "description": "Get historical and upcoming initial public offerings (IPOs).", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.calendar.ipo(provider='intrinio')\n# Get all IPOs available.\nobb.equity.calendar.ipo(provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -11113,7 +11284,7 @@ "message": null }, "description": "Get historical and upcoming dividend payments. Includes dividend amount, ex-dividend and payment dates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.calendar.dividend(provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -11253,7 +11424,7 @@ "message": null }, "description": "Get historical and upcoming stock split operations.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.calendar.splits(provider='fmp')\n# Get stock splits calendar for specific dates.\nobb.equity.calendar.splits(start_date='2024-02-01', end_date='2024-02-07', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -11360,7 +11531,7 @@ "message": null }, "description": "Get historical and upcoming company events, such as Investor Day, Conference Call, Earnings Release.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.calendar.events(provider='fmp')\n# Get company events calendar for specific dates.\nobb.equity.calendar.events(start_date='2024-02-01', end_date='2024-02-07', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -11492,7 +11663,7 @@ "message": null }, "description": "Get historical and upcoming company earnings releases. Includes earnings per share (EPS) and revenue data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.calendar.earnings(provider='fmp')\n# Get earnings calendar for specific dates.\nobb.equity.calendar.earnings(start_date='2024-02-01', end_date='2024-02-07', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -11648,7 +11819,7 @@ "message": null }, "description": "Get the closest peers for a given company.\n\nPeers consist of companies trading on the same exchange, operating within the same sector\nand with comparable market capitalizations.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.compare.peers(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -11715,7 +11886,7 @@ "message": null }, "description": "Compare reported company facts and fundamental data points.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.compare.company_facts(provider='sec')\nobb.equity.compare.company_facts(provider='sec', fact='PaymentsForRepurchaseOfCommonStock', year=2023)\nobb.equity.compare.company_facts(provider='sec', symbol='NVDA,AAPL,AMZN,MSFT,GOOG,SMCI', fact='RevenueFromContractWithCustomerExcludingAssessedTax', year=2024)\n```\n\n", "parameters": { "standard": [ { @@ -11950,7 +12121,7 @@ "message": null }, "description": "Get analyst price targets by company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.price_target(provider='benzinga')\n# Get price targets for Microsoft using 'benzinga' as provider.\nobb.equity.estimates.price_target(start_date=2020-01-01, end_date=2024-02-16, limit=10, symbol='msft', provider='benzinga', action=downgrades)\n```\n\n", "parameters": { "standard": [ { @@ -12355,7 +12526,7 @@ "message": null }, "description": "Get historical analyst estimates for earnings and revenue.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.historical(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -12607,7 +12778,7 @@ "message": null }, "description": "Get consensus price target and recommendation.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.consensus(symbol='AAPL', provider='fmp')\nobb.equity.estimates.consensus(symbol='AAPL,MSFT', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -12817,7 +12988,7 @@ "message": null }, "description": "Search for specific analysts and get their forecast track record.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.analyst_search(provider='benzinga')\nobb.equity.estimates.analyst_search(firm_name='Wedbush', provider='benzinga')\n```\n\n", "parameters": { "standard": [ { @@ -13374,7 +13545,7 @@ "message": null }, "description": "Get forward sales estimates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.forward_sales(symbol='AAPL', provider='intrinio')\nobb.equity.estimates.forward_sales(fiscal_year=2025, fiscal_period=fy, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -13643,7 +13814,7 @@ "message": null }, "description": "Get forward EBITDA estimates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.forward_ebitda(provider='intrinio')\nobb.equity.estimates.forward_ebitda(symbol='AAPL', fiscal_period=annual, provider='intrinio')\nobb.equity.estimates.forward_ebitda(symbol='AAPL,MSFT', fiscal_period=quarter, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -13684,7 +13855,7 @@ "intrinio": [ { "name": "fiscal_period", - "type": "Literal['annual', 'quarter']", + "type": "Literal['quarter', 'annual']", "description": "Filter for only full-year or quarterly estimates.", "default": null, "optional": true, @@ -13867,7 +14038,7 @@ "message": null }, "description": "Get forward EPS estimates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.forward_eps(symbol='AAPL', provider='intrinio')\nobb.equity.estimates.forward_eps(fiscal_year=2025, fiscal_period=fy, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -14131,7 +14302,7 @@ "message": null }, "description": "Get forward PE estimates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.estimates.forward_pe(provider='intrinio')\nobb.equity.estimates.forward_pe(symbol='AAPL,MSFT,GOOG', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -14271,7 +14442,7 @@ "message": null }, "description": "Get the top price gainers in the stock market.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.gainers(provider='yfinance')\nobb.equity.discovery.gainers(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -14548,7 +14719,7 @@ "message": null }, "description": "Get the top price losers in the stock market.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.losers(provider='yfinance')\nobb.equity.discovery.losers(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -14825,7 +14996,7 @@ "message": null }, "description": "Get the most actively traded stocks based on volume.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.active(provider='yfinance')\nobb.equity.discovery.active(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -15102,7 +15273,7 @@ "message": null }, "description": "Get potentially undervalued large cap stocks.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.undervalued_large_caps(provider='yfinance')\nobb.equity.discovery.undervalued_large_caps(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -15379,7 +15550,7 @@ "message": null }, "description": "Get potentially undervalued growth stocks.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.undervalued_growth(provider='yfinance')\nobb.equity.discovery.undervalued_growth(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -15656,7 +15827,7 @@ "message": null }, "description": "Get top small cap stocks based on earnings growth.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.aggressive_small_caps(provider='yfinance')\nobb.equity.discovery.aggressive_small_caps(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -15933,7 +16104,7 @@ "message": null }, "description": "Get top tech stocks based on revenue and earnings growth.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.growth_tech(provider='yfinance')\nobb.equity.discovery.growth_tech(sort='desc', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -16210,7 +16381,7 @@ "message": null }, "description": "Get the URLs to SEC filings reported to EDGAR database, such as 10-K, 10-Q, 8-K, and more.\n\nSEC filings include Form 10-K, Form 10-Q, Form 8-K, the proxy statement, Forms 3, 4, and 5, Schedule 13, Form 114,\nForeign Investment Disclosures and others. The annual 10-K report is required to be\nfiled annually and includes the company's financial statements, management discussion and analysis,\nand audited financial statements.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.filings(provider='fmp')\n# Get filings for the year 2023, limited to 100 results\nobb.equity.discovery.filings(start_date='2023-01-01', end_date='2023-12-31', limit=100, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -16350,7 +16521,7 @@ "message": null }, "description": "Get the newest quarterly, annual, and current reports for all companies.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.discovery.latest_financial_reports(provider='sec')\nobb.equity.discovery.latest_financial_reports(provider='sec', date=2024-09-30)\n```\n\n", "parameters": { "standard": [], "sec": [ @@ -16543,7 +16714,7 @@ "message": null }, "description": "Get equity valuation multiples for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.multiples(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -17090,7 +17261,7 @@ "message": null }, "description": "Get the balance sheet for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.balance(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.balance(symbol='AAPL', period=annual, limit=5, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -18710,7 +18881,7 @@ "message": null }, "description": "Get the growth of a company's balance sheet items over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.balance_growth(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.balance_growth(symbol='AAPL', limit=10, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -19134,7 +19305,7 @@ "message": null }, "description": "Get the cash flow statement for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.cash(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.cash(symbol='AAPL', period=annual, limit=5, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -20157,7 +20328,7 @@ "message": null }, "description": "Get financial statements as reported by the company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.reported_financials(symbol='AAPL', provider='intrinio')\n# Get AAPL balance sheet with a limit of 10 items.\nobb.equity.fundamental.reported_financials(symbol='AAPL', period='annual', statement_type='balance', limit=10, provider='intrinio')\n# Get reported income statement\nobb.equity.fundamental.reported_financials(symbol='AAPL', statement_type='income', provider='intrinio')\n# Get reported cash flow statement\nobb.equity.fundamental.reported_financials(symbol='AAPL', statement_type='cash', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -20289,7 +20460,7 @@ "message": null }, "description": "Get the growth of a company's cash flow statement items over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.cash_growth(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.cash_growth(symbol='AAPL', limit=10, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -20641,7 +20812,7 @@ "message": null }, "description": "Get historical dividend data for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.dividends(symbol='AAPL', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -20811,7 +20982,7 @@ "message": null }, "description": "Get historical earnings per share data for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.historical_eps(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -20960,7 +21131,7 @@ "message": null }, "description": "Get historical employee count data for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.employee_count(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -21091,7 +21262,7 @@ "message": null }, "description": "Search Intrinio data tags to search in latest or historical attributes.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.search_attributes(query='ebitda', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -21246,7 +21417,7 @@ "message": null }, "description": "Get the latest value of a data tag from Intrinio.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.latest_attributes(symbol='AAPL', tag='ceo', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -21337,7 +21508,7 @@ "message": null }, "description": "Get the historical values of a data tag from Intrinio.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.historical_attributes(symbol='AAPL', tag='ebitda', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -21484,7 +21655,7 @@ "message": null }, "description": "Get the income statement for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.income(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.income(symbol='AAPL', period=annual, limit=5, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -22995,7 +23166,7 @@ "message": null }, "description": "Get the growth of a company's income statement items over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.income_growth(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.income_growth(symbol='AAPL', limit=10, period=annual, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -23315,7 +23486,7 @@ "message": null }, "description": "Get fundamental metrics for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.metrics(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.metrics(symbol='AAPL', period=annual, limit=100, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -24473,7 +24644,7 @@ "message": null }, "description": "Get executive management team data for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.management(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -24615,7 +24786,7 @@ "message": null }, "description": "Get executive management team compensation for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.management_compensation(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -24804,7 +24975,7 @@ "message": null }, "description": "Get an extensive set of financial and accounting ratios for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.ratios(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.ratios(symbol='AAPL', period=annual, limit=12, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -25381,7 +25552,7 @@ "message": null }, "description": "Get the geographic breakdown of revenue for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.revenue_per_geography(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.revenue_per_geography(symbol='AAPL', period=quarter, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -25500,7 +25671,7 @@ "message": null }, "description": "Get the revenue breakdown by business segment for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.revenue_per_segment(symbol='AAPL', provider='fmp')\nobb.equity.fundamental.revenue_per_segment(symbol='AAPL', period=quarter, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -25619,7 +25790,7 @@ "message": null }, "description": "Get public company filings.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.filings(provider='fmp')\nobb.equity.fundamental.filings(limit=100, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -26387,7 +26558,7 @@ "message": null }, "description": "Get historical stock splits for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.historical_splits(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -26478,7 +26649,7 @@ "message": null }, "description": "Get earnings call transcripts for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.transcript(symbol='AAPL', year='2020', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -26585,7 +26756,7 @@ "message": null }, "description": "Get the 1 year trailing dividend yield for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.trailing_dividend_yield(symbol='AAPL', provider='tiingo')\nobb.equity.fundamental.trailing_dividend_yield(symbol='AAPL', limit=252, provider='tiingo')\n```\n\n", "parameters": { "standard": [ { @@ -26668,7 +26839,7 @@ "message": null }, "description": "Get the Management Discussion & Analysis section from the financial statements for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.fundamental.management_discussion_analysis(symbol='AAPL', provider='sec')\n# Get the Management Discussion & Analysis section by calendar year and period.\nobb.equity.fundamental.management_discussion_analysis(symbol='AAPL', calendar_year=2020, calendar_period='Q4', provider='sec')\n# Setting 'include_tables' to True will attempt to extract all tables in valid Markdown.\nobb.equity.fundamental.management_discussion_analysis(symbol='AAPL', calendar_year=2020, calendar_period='Q4', provider='sec', include_tables=True)\n# Setting 'raw_html' to True will bypass extraction and return the raw HTML file, as is. Use this for custom parsing or to access the entire HTML filing.\nobb.equity.fundamental.management_discussion_analysis(symbol='AAPL', calendar_year=2020, calendar_period='Q4', provider='sec', raw_html=True)\n```\n\n", "parameters": { "standard": [ { @@ -26843,7 +27014,7 @@ "message": null }, "description": "Get data about major holders for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.ownership.major_holders(symbol='AAPL', provider='fmp')\nobb.equity.ownership.major_holders(symbol='AAPL', page=0, provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -27230,7 +27401,7 @@ "message": null }, "description": "Get data about institutional ownership for a given company over time.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.ownership.institutional(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -27595,7 +27766,7 @@ "message": null }, "description": "Get data about trading by a company's management team and board of directors.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.ownership.insider_trading(symbol='AAPL', provider='fmp')\nobb.equity.ownership.insider_trading(symbol='AAPL', limit=500, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -28155,7 +28326,7 @@ "message": null }, "description": "Get data about share float for a given company.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.ownership.share_statistics(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -28364,7 +28535,7 @@ "message": null }, "description": "Get the form 13F.\n\nThe Securities and Exchange Commission's (SEC) Form 13F is a quarterly report\nthat is required to be filed by all institutional investment managers with at least\n$100 million in assets under management.\nManagers are required to file Form 13F within 45 days after the last day of the calendar quarter.\nMost funds wait until the end of this period in order to conceal\ntheir investment strategy from competitors and the public.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.ownership.form_13f(symbol='NVDA', provider='sec')\n# Enter a date (calendar quarter ending) for a specific report.\nobb.equity.ownership.form_13f(symbol='BRK-A', date='2016-09-30', provider='sec')\n# Example finding Michael Burry's filings.\ncik = obb.regulators.sec.institutions_search(\"Scion Asset Management\").results[0].cik\n# Use the `limit` parameter to return N number of reports from the most recent.\nobb.equity.ownership.form_13f(cik, limit=2).to_df()\n```\n\n", "parameters": { "standard": [ { @@ -28544,7 +28715,7 @@ "message": null }, "description": "Obtain government transaction data, including data from the Senate\nand the House of Representatives.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.ownership.government_trades(symbol='AAPL', chamber='all', provider='fmp')\nobb.equity.ownership.government_trades(limit=500, chamber='all', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -28716,7 +28887,7 @@ "message": null }, "description": "Get the latest quote for a given stock. Quote includes price, volume, and other data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.price.quote(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -29199,7 +29370,7 @@ "message": null }, "description": "Get the National Best Bid and Offer for a given stock.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.price.nbbo(symbol='AAPL', provider='polygon')\n```\n\n", "parameters": { "standard": [ { @@ -29412,7 +29583,7 @@ "message": null }, "description": "Get historical price data for a given stock. This includes open, high, low, close, and volume.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.price.historical(symbol='AAPL', provider='fmp')\nobb.equity.price.historical(symbol='AAPL', interval=1d, provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -29985,7 +30156,7 @@ "message": null }, "description": "Get price performance data for a given stock. This includes price changes for different time periods.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.price.performance(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -30189,7 +30360,7 @@ "message": null }, "description": "Get reported Fail-to-deliver (FTD) data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.shorts.fails_to_deliver(symbol='AAPL', provider='sec')\n```\n\n", "parameters": { "standard": [ { @@ -30321,7 +30492,7 @@ "message": null }, "description": "Search for stock symbol, CIK, LEI, or company name.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.search(provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -30474,7 +30645,7 @@ "message": null }, "description": "Screen for companies meeting various criteria.\n\nThese criteria include market cap, price, beta, volume, and dividend yield.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.screener(provider='fmp')\n```\n\n", "parameters": { "standard": [], "fmp": [ @@ -31406,7 +31577,7 @@ "message": null }, "description": "Get general information about a company. This includes company name, industry, sector and price data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.profile(symbol='AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -31976,7 +32147,7 @@ "message": null }, "description": "Get an updated equity market snapshot. This includes price data for thousands of stocks.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.market_snapshots(provider='fmp')\n```\n\n", "parameters": { "standard": [], "fmp": [ @@ -32508,7 +32679,7 @@ "message": null }, "description": "Get the historical market cap of a ticker symbol.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.equity.historical_market_cap(provider='fmp', symbol='AAPL')\n```\n\n", "parameters": { "standard": [ { @@ -32624,7 +32795,7 @@ "message": null }, "description": "Search for ETFs.\n\nAn empty query returns the full list of ETFs from the provider.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# An empty query returns the full list of ETFs from the provider.\nobb.etf.search(provider='fmp')\n# The query will return results from text-based fields containing the term.\nobb.etf.search(query='commercial real estate', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -32872,7 +33043,7 @@ "message": null }, "description": "ETF Historical Market Price.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.historical(symbol='SPY', provider='fmp')\nobb.etf.historical(symbol='SPY', provider='yfinance')\n# This function accepts multiple tickers.\nobb.etf.historical(symbol='SPY,IWM,QQQ,DJIA', provider='yfinance')\n```\n\n", "parameters": { "standard": [ { @@ -33445,7 +33616,7 @@ "message": null }, "description": "ETF Information Overview.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.info(symbol='SPY', provider='fmp')\n# This function accepts multiple tickers.\nobb.etf.info(symbol='SPY,IWM,QQQ,DJIA', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -34799,7 +34970,7 @@ "message": null }, "description": "ETF Sector weighting.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.sectors(symbol='SPY', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -34874,7 +35045,7 @@ "message": null }, "description": "ETF Country weighting.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.countries(symbol='VT', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -34941,7 +35112,7 @@ "message": null }, "description": "Price performance as a return, over different periods.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.price_performance(symbol='QQQ', provider='fmp')\nobb.etf.price_performance(symbol='SPY,QQQ,IWM,DJIA', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -35285,7 +35456,7 @@ "message": null }, "description": "Get the holdings for an individual ETF.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.holdings(symbol='XLK', provider='fmp')\n# Including a date (FMP, SEC) will return the holdings as per NPORT-P filings.\nobb.etf.holdings(symbol='XLK', date=2022-03-31, provider='fmp')\n# The same data can be returned from the SEC directly.\nobb.etf.holdings(symbol='XLK', date=2022-03-31, provider='sec')\n```\n\n", "parameters": { "standard": [ { @@ -36306,7 +36477,7 @@ "message": null }, "description": "Use this function to get the holdings dates, if available.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.holdings_date(symbol='XLK', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -36382,7 +36553,7 @@ "message": null }, "description": "Get the exposure to ETFs for a specific stock.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.etf.equity_exposure(symbol='MSFT', provider='fmp')\n# This function accepts multiple tickers.\nobb.etf.equity_exposure(symbol='MSFT,AAPL', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -36481,7 +36652,7 @@ "message": null }, "description": "AMERIBOR.\n\nAMERIBOR (short for the American interbank offered rate) is a benchmark interest rate that reflects the true cost of\nshort-term interbank borrowing. This rate is based on transactions in overnight unsecured loans conducted on the\nAmerican Financial Exchange (AFX).", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.ameribor(provider='fred')\n# The change from one year ago is applied with the transform parameter.\nobb.fixedincome.rate.ameribor(maturity=all, transform=pc1, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -36655,7 +36826,7 @@ "message": null }, "description": "Sterling Overnight Index Average.\n\nSONIA (Sterling Overnight Index Average) is an important interest rate benchmark. SONIA is based on actual\ntransactions and reflects the average of the interest rates that banks pay to borrow sterling overnight from other\nfinancial institutions and other institutional investors.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.sonia(provider='fred')\nobb.fixedincome.rate.sonia(parameter=total_nominal_value, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -36747,7 +36918,7 @@ "message": null }, "description": "Secured Overnight Financing Rate.\n\nThe Secured Overnight Financing Rate (SOFR) is a broad measure of the cost of\nborrowing cash overnight collateralizing by Treasury securities.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.sofr(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -36957,7 +37128,7 @@ "message": null }, "description": "Interest on Reserve Balances.\n\nGet Interest Rate on Reserve Balances data A bank rate is the interest rate a nation's central bank charges to its\ndomestic banks to borrow money. The rates central banks charge are set to stabilize the economy. In the\nUnited States, the Federal Reserve System's Board of Governors set the bank rate, also known as the discount rate.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.iorb(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -37040,7 +37211,7 @@ "message": null }, "description": "Fed Funds Rate.\n\nGet Effective Federal Funds Rate data. A bank rate is the interest rate a nation's central bank charges to its\ndomestic banks to borrow money. The rates central banks charge are set to stabilize the economy.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.effr(provider='fred')\nobb.fixedincome.rate.effr(effr_only=True, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -37274,7 +37445,7 @@ "message": null }, "description": "Fed Funds Rate Projections.\n\nThe projections for the federal funds rate are the value of the midpoint of the\nprojected appropriate target range for the federal funds rate or the projected\nappropriate target level for the federal funds rate at the end of the specified\ncalendar year or over the longer run.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.effr_forecast(provider='fred')\nobb.fixedincome.rate.effr_forecast(long_run=True, provider='fred')\n```\n\n", "parameters": { "standard": [], "fred": [ @@ -37397,7 +37568,7 @@ "message": null }, "description": "Euro Short-Term Rate.\n\nThe euro short-term rate (\u20acSTR) reflects the wholesale euro unsecured overnight borrowing costs of banks located in\nthe euro area. The \u20acSTR is published on each TARGET2 business day based on transactions conducted and settled on\nthe previous TARGET2 business day (the reporting date \u201cT\u201d) with a maturity date of T+1 which are deemed to have been\nexecuted at arm's length and thus reflect market rates in an unbiased way.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.estr(provider='fred')\nobb.fixedincome.rate.estr(transform=ch1, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -37580,7 +37751,7 @@ "message": null }, "description": "European Central Bank Interest Rates.\n\nThe Governing Council of the ECB sets the key interest rates for the euro area:\n\n- The interest rate on the main refinancing operations (MRO), which provide\nthe bulk of liquidity to the banking system.\n- The rate on the deposit facility, which banks may use to make overnight deposits with the Eurosystem.\n- The rate on the marginal lending facility, which offers overnight credit to banks from the Eurosystem.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.ecb(provider='fred')\nobb.fixedincome.rate.ecb(interest_rate_type='refinancing', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -37671,7 +37842,7 @@ "message": null }, "description": "Discount Window Primary Credit Rate.\n\nA bank rate is the interest rate a nation's central bank charges to its domestic banks to borrow money.\nThe rates central banks charge are set to stabilize the economy.\nIn the United States, the Federal Reserve System's Board of Governors set the bank rate,\nalso known as the discount rate.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.dpcredit(provider='fred')\nobb.fixedincome.rate.dpcredit(start_date='2023-02-01', end_date='2023-05-01', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -37763,7 +37934,7 @@ "message": null }, "description": "Overnight Bank Funding.\n\nFor the United States, the overnight bank funding rate (OBFR) is calculated as a volume-weighted median of\novernight federal funds transactions and Eurodollar transactions reported in the\nFR 2420 Report of Selected Money Market Rates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.rate.overnight_bank_funding(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -37949,7 +38120,7 @@ "message": null }, "description": "Treasury Constant Maturity.\n\nGet data for 10-Year Treasury Constant Maturity Minus Selected Treasury Constant Maturity.\nConstant maturity is the theoretical value of a U.S. Treasury that is based on recent values of auctioned U.S.\nTreasuries. The value is obtained by the U.S. Treasury on a daily basis through interpolation of the Treasury\nyield curve which, in turn, is based on closing bid-yields of actively-traded Treasury securities.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.spreads.tcm(provider='fred')\nobb.fixedincome.spreads.tcm(maturity='2y', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -38040,7 +38211,7 @@ "message": null }, "description": "Select Treasury Constant Maturity.\n\nGet data for Selected Treasury Constant Maturity Minus Federal Funds Rate\nConstant maturity is the theoretical value of a U.S. Treasury that is based on recent values of auctioned U.S.\nTreasuries. The value is obtained by the U.S. Treasury on a daily basis through interpolation of the Treasury\nyield curve which, in turn, is based on closing bid-yields of actively-traded Treasury securities.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.spreads.tcm_effr(provider='fred')\nobb.fixedincome.spreads.tcm_effr(maturity='10y', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -38131,7 +38302,7 @@ "message": null }, "description": "Select Treasury Bill.\n\nGet Selected Treasury Bill Minus Federal Funds Rate.\nConstant maturity is the theoretical value of a U.S. Treasury that is based on recent values of\nauctioned U.S. Treasuries.\nThe value is obtained by the U.S. Treasury on a daily basis through interpolation of the Treasury\nyield curve which, in turn, is based on closing bid-yields of actively-traded Treasury securities.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.spreads.treasury_effr(provider='fred')\nobb.fixedincome.spreads.treasury_effr(maturity='6m', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -38222,7 +38393,7 @@ "message": null }, "description": "Get yield curve data by country and date.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.government.yield_curve(provider='federal_reserve')\nobb.fixedincome.government.yield_curve(date='2023-05-01,2024-05-01', provider='fmp')\nobb.fixedincome.government.yield_curve(date='2023-05-01', country=united_kingdom, provider='econdb')\nobb.fixedincome.government.yield_curve(provider='fred', yield_curve_type=real, date='2023-05-01,2024-05-01')\n```\n\n", "parameters": { "standard": [ { @@ -38357,7 +38528,7 @@ "message": null }, "description": "Government Treasury Rates.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.government.treasury_rates(provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -38538,7 +38709,7 @@ "message": null }, "description": "Get current Treasury inflation-protected securities yields.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.government.tips_yields(provider='fred')\nobb.fixedincome.government.tips_yields(maturity=10, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -38710,7 +38881,7 @@ "message": "This endpoint is deprecated; use `/fixedincome/bond_indices` instead. Deprecated in OpenBB Platform V4.2 to be removed in V4.5." }, "description": "ICE BofA US Corporate Bond Indices.\n\nThe ICE BofA US Corporate Index tracks the performance of US dollar denominated investment grade corporate debt\npublicly issued in the US domestic market. Qualifying securities must have an investment grade rating (based on an\naverage of Moody\u2019s, S&P and Fitch), at least 18 months to final maturity at the time of issuance, at least one year\nremaining term to final maturity as of the rebalance date, a fixed coupon schedule and a minimum amount\noutstanding of $250 million. The ICE BofA US Corporate Index is a component of the US Corporate Master Index.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.corporate.ice_bofa(provider='fred')\nobb.fixedincome.corporate.ice_bofa(index_type='yield_to_worst', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -38834,7 +39005,7 @@ "message": "This endpoint is deprecated; use `/fixedincome/bond_indices` instead. Set `category` to `us` and `index` to `seasoned_corporate`. Deprecated in OpenBB Platform V4.2 to be removed in V4.5." }, "description": "Moody Corporate Bond Index.\n\nMoody's Aaa and Baa are investment bonds that acts as an index of\nthe performance of all bonds given an Aaa or Baa rating by Moody's Investors Service respectively.\nThese corporate bonds often are used in macroeconomics as an alternative to the federal ten-year\nTreasury Bill as an indicator of the interest rate.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.corporate.moody(provider='fred')\nobb.fixedincome.corporate.moody(index_type='baa', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -38934,7 +39105,7 @@ "message": null }, "description": "High Quality Market Corporate Bond.\n\nThe HQM yield curve represents the high quality corporate bond market, i.e.,\ncorporate bonds rated AAA, AA, or A. The HQM curve contains two regression terms.\nThese terms are adjustment factors that blend AAA, AA, and A bonds into a single HQM yield curve\nthat is the market-weighted average (MWA) quality of high quality bonds.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.corporate.hqm(provider='fred')\nobb.fixedincome.corporate.hqm(yield_curve=par, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -39029,7 +39200,7 @@ "message": null }, "description": "Spot Rates.\n\nThe spot rates for any maturity is the yield on a bond that provides a single payment at that maturity.\nThis is a zero coupon bond.\nBecause each spot rate pertains to a single cashflow, it is the relevant interest rate\nconcept for discounting a pension liability at the same maturity.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.corporate.spot_rates(provider='fred')\nobb.fixedincome.corporate.spot_rates(maturity='10,20,30,50', provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -39131,7 +39302,7 @@ "message": null }, "description": "Commercial Paper.\n\nCommercial paper (CP) consists of short-term, promissory notes issued primarily by corporations.\nMaturities range up to 270 days but average about 30 days.\nMany companies use CP to raise cash needed for current transactions,\nand many find it to be a lower-cost alternative to bank loans.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.corporate.commercial_paper(provider='fred')\nobb.fixedincome.corporate.commercial_paper(category=all, maturity=15d, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -39329,7 +39500,7 @@ "message": "This endpoint is deprecated; use `/fixedincome/rate/sofr` instead. Deprecated in OpenBB Platform V4.2 to be removed in V4.5." }, "description": "Secured Overnight Financing Rate.\n\nThe Secured Overnight Financing Rate (SOFR) is a broad measure of the cost of\nborrowing cash overnight collateralizing by Treasury securities.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.sofr(provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -39539,7 +39710,7 @@ "message": null }, "description": "Bond Indices.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# The default state for FRED are series for constructing the US Corporate Bond Yield Curve.\nobb.fixedincome.bond_indices(provider='fred')\n# Multiple indices, from within the same 'category', can be requested.\nobb.fixedincome.bond_indices(category=high_yield, index=us,europe,emerging, index_type='total_return', provider='fred')\n# From FRED, there are three main categories, 'high_yield', 'us', and 'emerging_markets'. Emerging markets is a broad category.\nobb.fixedincome.bond_indices(category=emerging_markets, index=corporate,private_sector,public_sector, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -39755,7 +39926,7 @@ "message": null }, "description": "Mortgage Indices.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# The default state for FRED are the primary mortgage indices from Optimal Blue.\nobb.fixedincome.mortgage_indices(provider='fred')\n# Multiple indices can be requested.\nobb.fixedincome.mortgage_indices(index=jumbo_30y,conforming_30y,conforming_15y, provider='fred')\n```\n\n", "parameters": { "standard": [ { @@ -39936,7 +40107,7 @@ "message": null }, "description": "Historical Index Levels.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.index.price.historical(symbol='^GSPC', provider='fmp')\n# Not all providers have the same symbols.\nobb.index.price.historical(symbol='SPX', provider='intrinio')\n```\n\n", "parameters": { "standard": [ { @@ -40173,7 +40344,7 @@ "message": null }, "description": "Get Index Constituents.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.index.constituents(symbol='dowjones', provider='fmp')\n```\n\n", "parameters": { "standard": [ { @@ -40306,7 +40477,7 @@ "message": null }, "description": "All indices available from a given provider.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.index.available(provider='fmp')\nobb.index.available(provider='yfinance')\n```\n\n", "parameters": { "standard": [], "fmp": [], @@ -40408,7 +40579,7 @@ "message": null }, "description": "World News. Global news data.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.news.world(provider='fmp')\nobb.news.world(limit=100, provider='intrinio')\n# Get news on the specified dates.\nobb.news.world(start_date='2024-02-01', end_date='2024-02-07', provider='intrinio')\n# Display the headlines of the news.\nobb.news.world(display=headline, provider='benzinga')\n# Get news by topics.\nobb.news.world(topics=finance, provider='benzinga')\n# Get news by source using 'tingo' as provider.\nobb.news.world(provider='tiingo', source=bloomberg)\n```\n\n", "parameters": { "standard": [ { @@ -40928,7 +41099,7 @@ "message": null }, "description": "Company News. Get news for one or more companies.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.news.company(provider='benzinga')\nobb.news.company(limit=100, provider='benzinga')\n# Get news on the specified dates.\nobb.news.company(symbol='AAPL', start_date='2024-02-01', end_date='2024-02-07', provider='intrinio')\n# Display the headlines of the news.\nobb.news.company(symbol='AAPL', display=headline, provider='benzinga')\n# Get news for multiple symbols.\nobb.news.company(symbol='aapl,tsla', provider='fmp')\n# Get news company's ISIN.\nobb.news.company(symbol='NVDA', isin=US0378331005, provider='benzinga')\n```\n\n", "parameters": { "standard": [ { @@ -41540,7 +41711,7 @@ "message": null }, "description": "Download the index headers, and cover page if available, for any SEC filing.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.filing_headers(url=https://www.sec.gov/Archives/edgar/data/317540/000119312524076556/d645509ddef14a.htm, provider='sec')\n```\n\n", "parameters": { "standard": [], "sec": [ @@ -41730,7 +41901,7 @@ "message": null }, "description": "Download a raw HTML object from the SEC website.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.htm_file(url=https://www.sec.gov/Archives/edgar/data/1723690/000119312525030074/d866336dex991.htm, provider='sec')\n```\n\n", "parameters": { "standard": [], "sec": [ @@ -41826,7 +41997,7 @@ "message": null }, "description": "Map a ticker symbol to a CIK number.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.cik_map(symbol='MSFT', provider='sec')\n```\n\n", "parameters": { "standard": [ { @@ -41902,7 +42073,7 @@ "message": null }, "description": "Search SEC-regulated institutions by name and return a list of results with CIK numbers.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.institutions_search(provider='sec')\nobb.regulators.sec.institutions_search(query='blackstone real estate', provider='sec')\n```\n\n", "parameters": { "standard": [ { @@ -41986,7 +42157,7 @@ "message": null }, "description": "Use tool for navigating the directory of SEC XML schema files by year.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.schema_files(provider='sec')\n# Get a list of schema files.\ndata = obb.regulators.sec.schema_files().results\ndata.files[0]\n'https://xbrl.fasb.org/us-gaap/'\n# The directory structure can be navigated by constructing a URL from the 'results' list.\nurl = data.files[0]+data.files[-1]\n# The URL base will always be the 0 position in the list, feed the URL back in as a parameter.\nobb.regulators.sec.schema_files(url=url).results.files\n['https://xbrl.fasb.org/us-gaap/2024/'\n'USGAAP2024Filelist.xml'\n'dis/'\n'dqcrules/'\n'ebp/'\n'elts/'\n'entire/'\n'meta/'\n'stm/'\n'us-gaap-2024.zip']\n```\n\n", "parameters": { "standard": [ { @@ -42070,7 +42241,7 @@ "message": null }, "description": "Map a CIK number to a ticker symbol, leading 0s can be omitted or included.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.symbol_map(query='0000789019', provider='sec')\n```\n\n", "parameters": { "standard": [ { @@ -42145,7 +42316,7 @@ "message": null }, "description": "Get the RSS feed that provides links to litigation releases concerning civil lawsuits brought by the Commission in federal court.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.rss_litigation(provider='sec')\n```\n\n", "parameters": { "standard": [], "sec": [] @@ -42235,7 +42406,7 @@ "message": null }, "description": "Search for Industry Titles, Reporting Office, and SIC Codes. An empty query string returns all results.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.sec.sic_search(provider='sec')\nobb.regulators.sec.sic_search(query='real estate investment trusts', provider='sec')\n```\n\n", "parameters": { "standard": [ { @@ -42327,7 +42498,7 @@ "message": null }, "description": "Get the current Commitment of Traders Reports.\n\nSearch a list of the current Commitment of Traders Reports series information.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.regulators.cftc.cot_search(provider='cftc')\nobb.regulators.cftc.cot_search(query='gold', provider='cftc')\n```\n\n", "parameters": { "standard": [ { @@ -42443,7 +42614,7 @@ "message": null }, "description": "Get Commitment of Traders Reports.", - "examples": "", + "examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\n# Get the latest report for all items classified as, GOLD.\nobb.regulators.cftc.cot(id='gold', provider='cftc')\n# Enter the entire history for a single CFTC Market Contract Code.\nobb.regulators.cftc.cot(id='088691', provider='cftc')\n# Get the report for futures only.\nobb.regulators.cftc.cot(id='088691', futures_only=True, provider='cftc')\n# Get the most recent Commodity Index Traders Supplemental Report.\nobb.regulators.cftc.cot(id='all', report_type=supplemental, provider='cftc')\n```\n\n", "parameters": { "standard": [ { diff --git a/openbb_platform/openbb/package/economy_survey.py b/openbb_platform/openbb/package/economy_survey.py index ca90b1df6ee..b78f767a868 100644 --- a/openbb_platform/openbb/package/economy_survey.py +++ b/openbb_platform/openbb/package/economy_survey.py @@ -16,6 +16,7 @@ class ROUTER_economy_survey(Container): bls_search bls_series economic_conditions_chicago + manufacturing_outlook_ny manufacturing_outlook_texas nonfarm_payrolls sloos @@ -399,6 +400,150 @@ class ROUTER_economy_survey(Container): ) ) + @exception_handler + @validate + def manufacturing_outlook_ny( + self, + start_date: Annotated[ + Union[datetime.date, None, str], + OpenBBField(description="Start date of the data, in YYYY-MM-DD format."), + ] = None, + end_date: Annotated[ + Union[datetime.date, None, str], + OpenBBField(description="End date of the data, in YYYY-MM-DD format."), + ] = None, + provider: Annotated[ + Optional[Literal["fred"]], + OpenBBField( + description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred." + ), + ] = None, + **kwargs + ) -> OBBject: + """Get the Empire State Manufacturing Survey. + + It is a monthly survey of manufacturers in New York State conducted by the Federal Reserve Bank of New York. + + Participants from across the state in a variety of industries respond to a questionnaire + and report the change in a variety of indicators from the previous month. + + Respondents also state the likely direction of these same indicators six months ahead. + April 2002 is the first report, although survey data date back to July 2001. + + The survey is sent on the first day of each month to the same pool of about 200 + manufacturing executives in New York State, typically the president or CEO. + + About 100 responses are received. Most are completed by the tenth, although surveys are accepted until the fifteenth. + + + Parameters + ---------- + provider : str + The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred. + start_date : Union[date, None, str] + Start date of the data, in YYYY-MM-DD format. + end_date : Union[date, None, str] + End date of the data, in YYYY-MM-DD format. + topic : Union[Literal['business_outlook', 'hours_worked', 'employment', 'inventories', 'prices_received', 'prices_paid', 'capex', 'unfilled_orders', 'new_orders', 'shipments', 'delivery_times'], str] + The topic for the survey response. Multiple comma separated items allowed. (provider: fred) + seasonally_adjusted : bool + Whether the data is seasonally adjusted, default is False (provider: fred) + frequency : Optional[Literal['quarter', 'annual']] + Frequency aggregation to convert monthly data to lower frequency. None is monthly. (provider: fred) + aggregation_method : Optional[Literal['avg', 'sum', 'eop']] + A key that indicates the aggregation method used for frequency aggregation. + avg = Average + sum = Sum + eop = End of Period + (provider: fred) + transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca', 'log']] + Transformation type + None = No transformation + chg = Change + ch1 = Change from Year Ago + pch = Percent Change + pc1 = Percent Change from Year Ago + pca = Compounded Annual Rate of Change + cch = Continuously Compounded Rate of Change + cca = Continuously Compounded Annual Rate of Change + log = Natural Log + (provider: fred) + + Returns + ------- + OBBject + results : list[ManufacturingOutlookNY] + Serializable results. + provider : Optional[str] + Provider name. + warnings : Optional[list[Warning_]] + list of warnings. + chart : Optional[Chart] + Chart object. + extra : Dict[str, Any] + Extra info. + + ManufacturingOutlookNY + ---------------------- + date : date + The date of the data. + topic : Optional[str] + Topic of the survey response. + diffusion_index : Optional[float] + Diffusion Index. + percent_reporting_increase : Optional[float] + Percent of respondents reporting an increase over the last month. + percent_reporting_decrease : Optional[float] + Percent of respondents reporting a decrease over the last month. + percent_reporting_no_change : Optional[float] + Percent of respondents reporting no change over the last month. + + Examples + -------- + >>> from openbb import obb + >>> obb.economy.survey.manufacturing_outlook_ny(provider='fred') + >>> obb.economy.survey.manufacturing_outlook_ny(topic='hours_worked,new_orders', transform='pc1', provider='fred', seasonally_adjusted=True) + """ # noqa: E501 + + return self._run( + "/economy/survey/manufacturing_outlook_ny", + **filter_inputs( + provider_choices={ + "provider": self._get_provider( + provider, + "economy.survey.manufacturing_outlook_ny", + ("fred",), + ) + }, + standard_params={ + "start_date": start_date, + "end_date": end_date, + }, + extra_params=kwargs, + info={ + "topic": { + "fred": { + "multiple_items_allowed": True, + "choices": [ + "business_outlook", + "hours_worked", + "employment", + "inventories", + "prices_received", + "prices_paid", + "capex", + "unfilled_orders", + "new_orders", + "shipments", + "delivery_times", + ], + "x-widget_config": {"value": "new_orders"}, + } + } + }, + ) + ) + @exception_handler @validate def manufacturing_outlook_texas( @@ -748,7 +893,7 @@ class ROUTER_economy_survey(Container): Start date of the data, in YYYY-MM-DD format. end_date : Union[date, None, str] End date of the data, in YYYY-MM-DD format. - frequency : Optional[Literal['annual', 'quarter']] + frequency : Optional[Literal['quarter', 'annual']] Frequency aggregation to convert monthly data to lower frequency. None is monthly. (provider: fred) aggregation_method : Optional[Literal['avg', 'sum', 'eop']] A key that indicates the aggregation method used for frequency aggregation. diff --git a/openbb_platform/providers/fred/openbb_fred/__init__.py b/openbb_platform/providers/fred/openbb_fred/__init__.py index d25cdbee37e..db41c6362f1 100644 --- a/openbb_platform/providers/fred/openbb_fred/__init__.py +++ b/openbb_platform/providers/fred/openbb_fred/__init__.py @@ -20,6 +20,9 @@ from openbb_fred.models.high_quality_market import ( ) from openbb_fred.models.ice_bofa import FREDICEBofAFetcher from openbb_fred.models.iorb_rates import FREDIORBFetcher +from openbb_fred.models.manufacturing_outlook_ny import ( + FredManufacturingOutlookNYFetcher, +) from openbb_fred.models.manufacturing_outlook_texas import ( FredManufacturingOutlookTexasFetcher, ) @@ -76,6 +79,7 @@ Research division of the Federal Reserve Bank of St. Louis that has more than "DiscountWindowPrimaryCreditRate": FREDDiscountWindowPrimaryCreditRateFetcher, "EuropeanCentralBankInterestRates": FREDEuropeanCentralBankInterestRatesFetcher, "ICEBofA": FREDICEBofAFetcher, + "ManufacturingOutlookNY": FredManufacturingOutlookNYFetcher, "ManufacturingOutlookTexas": FredManufacturingOutlookTexasFetcher, "MoodyCorporateBondIndex": FREDMoodyCorporateBondIndexFetcher, "MortgageIndices": FredMortgageIndicesFetcher, diff --git a/openbb_platform/providers/fred/openbb_fred/models/manufacturing_outlook_ny.py b/openbb_platform/providers/fred/openbb_fred/models/manufacturing_outlook_ny.py new file mode 100644 index 00000000000..5c0c7b5e9e6 --- /dev/null +++ b/openbb_platform/providers/fred/openbb_fred/models/manufacturing_outlook_ny.py @@ -0,0 +1,557 @@ +"""FRED Manufacturing Outlook - New York - Model.""" + +# pylint: disable=unused-argument + +from typing import Any, Literal, Optional, Union +from warnings import warn + +from openbb_core.provider.abstract.annotated_result import AnnotatedResult +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.manufacturing_outlook_texas import ( + ManufacturingOutlookTexasData, + ManufacturingOutlookTexasQueryParams, +) +from openbb_core.provider.utils.errors import EmptyDataError, OpenBBError +from pydantic import Field, field_validator + +NY_MANUFACTURING_OUTLOOK = { + "current_hours_worked": { + "sa": { + "diffusion_index": "AWCDISA066MSFRBNY", + "percent_reporting_increase": "AWCISA156MSFRBNY", + "percent_reporting_decrease": "AWCDSA156MSFRBNY", + "percent_reporting_no_change": "AWCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "AWCDINA066MNFRBNY", + "percent_reporting_increase": "AWCINA156MNFRBNY", + "percent_reporting_decrease": "AWCDNA156MNFRBNY", + "percent_reporting_no_change": "AWCNNA156MNFRBNY", + }, + }, + "future_hours_worked": { + "sa": { + "diffusion_index": "AWFDISA066MSFRBNY", + "percent_reporting_increase": "AWFISA156MSFRBNY", + "percent_reporting_decrease": "AWFDSA156MSFRBNY", + "percent_reporting_no_change": "AWFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "AWFDINA066MNFRBNY", + "percent_reporting_increase": "AWFINA156MNFRBNY", + "percent_reporting_decrease": "AWFDNA156MNFRBNY", + "percent_reporting_no_change": "AWFNNA156MNFRBNY", + }, + }, + "current_business_outlook": { + "sa": { + "diffusion_index": "GACDISA066MSFRBNY", + "percent_reporting_increase": "GACISA156MSFRBNY", + "percent_reporting_decrease": "GACDSA156MSFRBNY", + "percent_reporting_no_change": "GACNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "GACDINA066MNFRBNY", + "percent_reporting_increase": "GACINA156MNFRBNY", + "percent_reporting_decrease": "GACDNA156MNFRBNY", + "percent_reporting_no_change": "GACNNA156MNFRBNY", + }, + }, + "future_business_outlook": { + "sa": { + "diffusion_index": "GAFDISA066MSFRBNY", + "percent_reporting_increase": "GAFISA156MSFRBNY", + "percent_reporting_decrease": "GAFDSA156MSFRBNY", + "percent_reporting_no_change": "GAFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "GAFDINA066MNFRBNY", + "percent_reporting_increase": "GAFINA156MNFRBNY", + "percent_reporting_decrease": "GAFDNA156MNFRBNY", + "percent_reporting_no_change": "GAFNNA156MNFRBNY", + }, + }, + "current_employment": { + "sa": { + "diffusion_index": "NECDISA066MSFRBNY", + "percent_reporting_increase": "NECISA156MSFRBNY", + "percent_reporting_decrease": "NECDSA156MSFRBNY", + "percent_reporting_no_change": "NECNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "NECDINA066MNFRBNY", + "percent_reporting_increase": "NECINA156MNFRBNY", + "percent_reporting_decrease": "NECDNA156MNFRBNY", + "percent_reporting_no_change": "NECNNA156MNFRBNY", + }, + }, + "future_employment": { + "sa": { + "diffusion_index": "NEFDISA066MSFRBNY", + "percent_reporting_increase": "NEFISA156MSFRBNY", + "percent_reporting_decrease": "NEFDSA156MSFRBNY", + "percent_reporting_no_change": "NEFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "NEFDINA066MNFRBNY", + "percent_reporting_increase": "NEFINA156MNFRBNY", + "percent_reporting_decrease": "NEFDNA156MNFRBNY", + "percent_reporting_no_change": "NEFNNA156MNFRBNY", + }, + }, + "current_inventories": { + "sa": { + "diffusion_index": "IVCDISA066MSFRBNY", + "percent_reporting_increase": "IVCISA156MSFRBNY", + "percent_reporting_decrease": "IVCDSA156MSFRBNY", + "percent_reporting_no_change": "IVCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "IVCDINA066MNFRBNY", + "percent_reporting_increase": "IVCINA156MNFRBNY", + "percent_reporting_decrease": "IVCDNA156MNFRBNY", + "percent_reporting_no_change": "IVCNNA156MNFRBNY", + }, + }, + "future_inventories": { + "sa": { + "diffusion_index": "IVFDISA066MSFRBNY", + "percent_reporting_increase": "IVFISA156MSFRBNY", + "percent_reporting_decrease": "IVFDSA156MSFRBNY", + "percent_reporting_no_change": "IVFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "IVFDINA066MNFRBNY", + "percent_reporting_increase": "IVFINA156MNFRBNY", + "percent_reporting_decrease": "IVFDNA156MNFRBNY", + "percent_reporting_no_change": "IVFNNA156MNFRBNY", + }, + }, + "current_prices_received": { + "sa": { + "diffusion_index": "PRCDISA066MSFRBNY", + "percent_reporting_increase": "PRCISA156MSFRBNY", + "percent_reporting_decrease": "PRCDSA156MSFRBNY", + "percent_reporting_no_change": "PRCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "PRCDINA066MNEMFRBNY", + "percent_reporting_increase": "PRCINA156MNEMFRBNY", + "percent_reporting_decrease": "PRCDNA156MNEMFRBNY", + "percent_reporting_no_change": "PRCNNA156MNEMFRBNY", + }, + }, + "future_prices_received": { + "sa": { + "diffusion_index": "PRFDISA066MSFRBNY", + "percent_reporting_increase": "PRFISA156MSFRBNY", + "percent_reporting_decrease": "PRFDSA156MSFRBNY", + "percent_reporting_no_change": "PRFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "PRFDINA066MNEMFRBNY", + "percent_reporting_increase": "PRFINA156MNEMFRBNY", + "percent_reporting_decrease": "PRFDNA156MNEMFRBNY", + "percent_reporting_no_change": "PRFNNA156MNEMFRBNY", + }, + }, + "current_prices_paid": { + "sa": { + "diffusion_index": "PPCDISA066MSFRBNY", + "percent_reporting_increase": "PPCISA156MSFRBNY", + "percent_reporting_decrease": "PPCDSA156MSFRBNY", + "percent_reporting_no_change": "PPCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "PPCDINA066MNEMFRBNY", + "percent_reporting_increase": "PPCINA156MNEMFRBNY", + "percent_reporting_decrease": "PPCDNA156MNEMFRBNY", + "percent_reporting_no_change": "PPCNNA156MNEMFRBNY", + }, + }, + "future_prices_paid": { + "sa": { + "diffusion_index": "PPFDISA066MSFRBNY", + "percent_reporting_increase": "PPFISA156MSFRBNY", + "percent_reporting_decrease": "PPFDSA156MSFRBNY", + "percent_reporting_no_change": "PPFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "PPFDINA066MNEMFRBNY", + "percent_reporting_increase": "PPFINA156MNEMFRBNY", + "percent_reporting_decrease": "PPFDNA156MNEMFRBNY", + "percent_reporting_no_change": "PPFNNA156MNEMFRBNY", + }, + }, + "future_capex": { + "sa": { + "diffusion_index": "CEFDISA066MSFRBNY", + "percent_reporting_increase": "CEFISA156MSFRBNY", + "percent_reporting_decrease": "CEFDSA156MSFRBNY", + "percent_reporting_no_change": "CEFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "CEFDINA066MNFRBNY", + "percent_reporting_increase": "CEFINA156MNFRBNY", + "percent_reporting_decrease": "CEFDNA156MNFRBNY", + "percent_reporting_no_change": "CEFNNA156MNFRBNY", + }, + }, + "current_unfilled_orders": { + "sa": { + "diffusion_index": "UOCDISA066MSFRBNY", + "percent_reporting_increase": "UOCISA156MSFRBNY", + "percent_reporting_decrease": "UOCDSA156MSFRBNY", + "percent_reporting_no_change": "UOCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "UOCDINA066MNFRBNY", + "percent_reporting_increase": "UOCINA156MNFRBNY", + "percent_reporting_decrease": "UOCDNA156MNFRBNY", + "percent_reporting_no_change": "UOCNNA156MNFRBNY", + }, + }, + "future_unfilled_orders": { + "sa": { + "diffusion_index": "UOFDISA066MSFRBNY", + "percent_reporting_increase": "UOFISA156MSFRBNY", + "percent_reporting_decrease": "UOFDSA156MSFRBNY", + "percent_reporting_no_change": "UOFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "UOFDINA066MNFRBNY", + "percent_reporting_increase": "UOFINA156MNFRBNY", + "percent_reporting_decrease": "UOFDNA156MNFRBNY", + "percent_reporting_no_change": "UOFNNA156MNFRBNY", + }, + }, + "current_new_orders": { + "sa": { + "diffusion_index": "NOCDINA066MNFRBNY", + "percent_reporting_increase": "NOCISA156MSFRBNY", + "percent_reporting_decrease": "NOCDSA156MSFRBNY", + "percent_reporting_no_change": "NOCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "NOCDINA066MNFRBNY", + "percent_reporting_increase": "NOCINA156MNFRBNY", + "percent_reporting_decrease": "NOCDNA156MNFRBNY", + "percent_reporting_no_change": "NOCNNA156MNFRBNY", + }, + }, + "future_new_orders": { + "sa": { + "diffusion_index": "NOFDISA066MSFRBNY", + "percent_reporting_increase": "NOFISA156MSFRBNY", + "percent_reporting_decrease": "NOFDSA156MSFRBNY", + "percent_reporting_no_change": "NOFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "NOFDINA066MNFRBNY", + "percent_reporting_increase": "NOFINA156MNFRBNY", + "percent_reporting_decrease": "NOFDNA156MNFRBNY", + "percent_reporting_no_change": "NOFNNA156MNFRBNY", + }, + }, + "current_shipments": { + "sa": { + "diffusion_index": "SHCDISA066MSFRBNY", + "percent_reporting_increase": "SHCISA156MSFRBNY", + "percent_reporting_decrease": "SHCDSA156MSFRBNY", + "percent_reporting_no_change": "SHCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "SHCDINA066MNFRBNY", + "percent_reporting_increase": "SHCINA156MNFRBNY", + "percent_reporting_decrease": "SHCDNA156MNFRBNY", + "percent_reporting_no_change": "SHCNNA156MNFRBNY", + }, + }, + "future_shipments": { + "sa": { + "diffusion_index": "SHFDISA066MSFRBNY", + "percent_reporting_increase": "SHFISA156MSFRBNY", + "percent_reporting_decrease": "SHFDSA156MSFRBNY", + "percent_reporting_no_change": "SHFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "SHFDINA066MNFRBNY", + "percent_reporting_increase": "SHFINA156MNFRBNY", + "percent_reporting_decrease": "SHFDNA156MNFRBNY", + "percent_reporting_no_change": "SHFNNA156MNFRBNY", + }, + }, + "current_delivery_times": { + "sa": { + "diffusion_index": "DTCDISA066MSFRBNY", + "percent_reporting_increase": "DTCISA156MSFRBNY", + "percent_reporting_decrease": "DTCDSA156MSFRBNY", + "percent_reporting_no_change": "DTCNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "DTCDINA066MNFRBNY", + "percent_reporting_increase": "DTCINA156MNFRBNY", + "percent_reporting_decrease": "DTCDNA156MNFRBNY", + "percent_reporting_no_change": "DTCNNA156MNFRBNY", + }, + }, + "future_delivery_times": { + "sa": { + "diffusion_index": "DTFDISA066MSFRBNY", + "percent_reporting_increase": "DTFISA156MSFRBNY", + "percent_reporting_decrease": "DTFDSA156MSFRBNY", + "percent_reporting_no_change": "DTFNSA156MSFRBNY", + }, + "not_sa": { + "diffusion_index": "DTFDINA066MNFRBNY", + "percent_reporting_increase": "DTFINA156MNFRBNY", + "percent_reporting_decrease": "DTFDNA156MNFRBNY", + "percent_reporting_no_change": "DTFNNA156MNFRBNY", + }, + }, +} + +ID_TO_TOPIC = {} +ID_TO_FIELD = {} +for key, value in NY_MANUFACTURING_OUTLOOK.items(): + for sub_key, sub_value in value.items(): + for sub_sub_key, sub_sub_value in sub_value.items(): + series = sub_sub_value + topic = key + ID_TO_TOPIC[series] = topic + ID_TO_FIELD[series] = sub_sub_key + +NY_MANUFACTURING_OUTLOOK_CHOICES = [ + "business_outlook", + "hours_worked", + "employment", + "inventories", + "prices_received", + "prices_paid", + "capex", + "unfilled_orders", + "new_orders", + "shipments", + "delivery_times", +] + +NyManufacturingOutlookChoices = Literal[ + "business_outlook", + "hours_worked", + "employment", + "inventories", + "prices_received", + "prices_paid", + "capex", + "unfilled_orders", + "new_orders", + "shipments", + "delivery_times", +] + + +class FredManufacturingOutlookNYQueryParams(ManufacturingOutlookTexasQueryParams): + """FRED Manufacturing Outlook - New York - Query Params.""" + + __json_schema_extra__ = { + "topic": { + "multiple_items_allowed": True, + "choices": NY_MANUFACTURING_OUTLOOK_CHOICES, + "x-widget_config": { + "value": "new_orders", + }, + }, + } + + topic: Union[NyManufacturingOutlookChoices, str] = Field( + default="new_orders", + description="The topic for the survey response.", + ) + seasonally_adjusted: bool = Field( + default=False, + description="Whether the data is seasonally adjusted, default is False", + ) + frequency: Optional[Literal["quarter", "annual"]] = Field( + default=None, + description="Frequency aggregation to convert monthly data to lower frequency. None is monthly.", + ) + aggregation_method: Optional[Literal["avg", "sum", "eop"]] = Field( + default=None, + description="""A key that indicates the aggregation method used for frequency aggregation. + avg = Average + sum = Sum + eop = End of Period + """, + ) + transform: Optional[ + Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca", "log"] + ] = Field( + default=None, + description="""Transformation type + None = No transformation + chg = Change + ch1 = Change from Year Ago + pch = Percent Change + pc1 = Percent Change from Year Ago + pca = Compounded Annual Rate of Change + cch = Continuously Compounded Rate of Change + cca = Continuously Compounded Annual Rate of Change + log = Natural Log + """, + ) + + @field_validator("topic", mode="before", check_fields=False) + @classmethod + def validate_topic(cls, v): + """Validate topic.""" + if v is None: + return "new_orders" + new_topics: list = [] + topics: list = [] + if isinstance(v, list): + topics = v + if isinstance(v, str): + topics = v.split(",") + for t in topics: + if t in NY_MANUFACTURING_OUTLOOK_CHOICES: + new_topics.append(t) + else: + warn(f"Invalid topic: {t}") + if not new_topics: + new_topics = ["new_orders"] + + v = ",".join(new_topics) + + return v + + +class FredManufacturingOutlookNYData(ManufacturingOutlookTexasData): + """FRED Manufacturing Outlook - New York - Data.""" + + +class FredManufacturingOutlookNYFetcher( + Fetcher[ + FredManufacturingOutlookNYQueryParams, + list[FredManufacturingOutlookNYData], + ] +): + """FRED Manufacturing Outlook - New York - Fetcher.""" + + @staticmethod + def transform_query( + params: dict[str, Any], + ) -> FredManufacturingOutlookNYQueryParams: + """Transform query parameters.""" + return FredManufacturingOutlookNYQueryParams(**params) + + @staticmethod + async def aextract_data( + query: FredManufacturingOutlookNYQueryParams, + credentials: Optional[dict[str, str]], + **kwargs: Any, + ) -> dict: + """Fetch data.""" + # pylint: disable=import-outside-toplevel + from openbb_fred.models.series import FredSeriesFetcher + + ids: list = [] + topics = query.topic.split(",") + seasonality = "sa" if query.seasonally_adjusted is True else "not_sa" + for t in topics: + future_series = list( + NY_MANUFACTURING_OUTLOOK.get("future_" + t, {}) + .get(seasonality, {}) + .values() + ) + current_series = list( + NY_MANUFACTURING_OUTLOOK.get("current_" + t, {}) + .get(seasonality, {}) + .values() + ) + topic_ids = future_series + current_series + ids.extend(topic_ids) + + if not ids: + raise OpenBBError("No valid topic selected. Please select a valid topic.") + + frequency = query.frequency[:1].lower() if query.frequency else None + + try: + response = await FredSeriesFetcher.fetch_data( + dict( + symbol=",".join(ids), + start_date=query.start_date, + end_date=query.end_date, + transform=query.transform, + frequency=frequency, + aggregation_method=query.aggregation_method, + ), + credentials, + ) + except Exception as e: + raise OpenBBError(e) from e + + return { + "metadata": response.metadata, + "data": [d.model_dump() for d in response.result], + } + + @staticmethod + def transform_data( + query: FredManufacturingOutlookNYQueryParams, + data: dict, + **kwargs: Any, + ) -> AnnotatedResult[list[FredManufacturingOutlookNYData]]: + """Transform data.""" + # pylint: disable=import-outside-toplevel + from numpy import nan + from pandas import Categorical, DataFrame + + df = DataFrame(data.get("data", [])) + + if df.empty: + raise EmptyDataError( + "The request was returned empty." + + " You may be experiencing rate limiting from the FRED API." + + " Please try again later and reduce the number of topics selected." + ) + + metadata = data.get("metadata", {}) + df = df.melt(id_vars="date", var_name="symbol", value_name="value").query( + "value.notnull()" + ) + df["topic"] = df.symbol.map(ID_TO_TOPIC) + df["field"] = df["symbol"].map(ID_TO_FIELD) + + df = df.pivot( + columns="field", index=["date", "topic"], values="value" + ).reset_index() + topic_categories = [ + d for d in NY_MANUFACTURING_OUTLOOK if d in df["topic"].unique() + ] + df = df.replace(nan, None) + + df["topic"] = Categorical( + df["topic"], + categories=topic_categories, + ordered=True, + ) + df.sort_values(["date", "topic"], inplace=True) + + for col in df.columns: + if col in [ + "percent_reporting_increase", + "percent_reporting_decrease", + "percent_reporting_no_change", + ]: + df[col] = df[col] / 100 + + if query.transform in ["pch", "pc1", "pca", "cch", "cca"]: + df.diffusion_index = df.diffusion_index / 100 + + records = df.to_dict(orient="records") + + return AnnotatedResult( + result=[FredManufacturingOutlookNYData.model_validate(r) for r in records], + metadata=metadata, + ) diff --git a/openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v1.yaml b/openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v1.yaml new file mode 100644 index 00000000000..d68ca90f54d --- /dev/null +++ b/openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v1.yaml @@ -0,0 +1,954 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIyNNczVqrVoZrx + 5pAwhBtvqWdCTeMt0Iw30rOgpvGWaMYb65lT0XhYAoMHjiHI9YDF1gIASLYqOu0CAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '278' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=5E958B9C9763C64FDFB3D6DBE8F94E90~000000000000000000000000000000~YAAQyjfLF+TKXg+WAQAAGnaSGxuD63+/l4cSVqA38iTPUI96DCCDoW7P90R7j/5aJ1go50zU4BOJ6dXW4d3321YbvsWddLjNOo+B7jQiheolGjSFlg6dpWbEtVxfX+YUyvNiLoow6bm0anvNogSv04tKlK5vFU8Zv238wUisGu9Y6jEgH/e8FCy4bjFw4X/23awDPrZ0UgdQrq5tCz5MNFT0qj+kHDPEghh51huLcH3hzrG6BW27/nHAMhO2gqZBkcQf+BGZhCIuLikkjxgao1gNHvfWtofXCX9Tsc4zbtnlzjFTjDbveViQ0onpRDcTqTyRArmp+jx3w5SSGjpql3y9kqHTDhgO2XSgXrirfOwRxAthypLOPFvThk5UCTQK; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIyNNYzVqrVoZrx + 5pAwhBlvqWdETdMtUE03tNAzpKbxlmjGG+qZUdF4WPqChQ1ghoZ6Fkq1sbUA0mXIDOwCAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '281' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=8637360917F91A50A577DC2B49BC38E2~000000000000000000000000000000~YAAQyjfLF+fKXg+WAQAAI3aSGxuvzEkOI2fzh/p7t96PqskB+L7e10VGXewEZJxHyo8JzV6RYpkFAHp4Bfs9wFHhgdiszWdIsTsfVik4Y7LkctINdROKDByL+9nqiCgi3siQ9J4YwvoZS2a9BXQ0MJvX16pHZxyXiC3FLAWfqmvhDs+LIdoO6Z2VSMvtB97ubdQvRWb5IdOLlUW/kdP9f+r0rrmLKx+xIcaVPBaGVJ6c4rD1HLd+/kk1+x5pIVFJ+O9rhUpXqQ4fpLFnbReMMB/gUQktxyBwq0OVoFuQb7zNUFgH86KpahT23Vqgc6m/eJYoUh1tP7njEM4CsCTps7Me+CVN/vKxKh2ciqpLpsiRv4vYRBO9ciAVh7t74dij; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=5E958B9C9763C64FDFB3D6DBE8F94E90~000000000000000000000000000000~YAAQyjfLF+TKXg+WAQAAGnaSGxuD63+/l4cSVqA38iTPUI96DCCDoW7P90R7j/5aJ1go50zU4BOJ6dXW4d3321YbvsWddLjNOo+B7jQiheolGjSFlg6dpWbEtVxfX+YUyvNiLoow6bm0anvNogSv04tKlK5vFU8Zv238wUisGu9Y6jEgH/e8FCy4bjFw4X/23awDPrZ0UgdQrq5tCz5MNFT0qj+kHDPEghh51huLcH3hzrG6BW27/nHAMhO2gqZBkcQf+BGZhCIuLikkjxgao1gNHvfWtofXCX9Tsc4zbtnlzjFTjDbveViQ0onpRDcTqTyRArmp+jx3w5SSGjpql3y9kqHTDhgO2XSgXrirfOwRxAthypLOPFvThk5UCTQK + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPdXPwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJbaUlpUaqCY1lqUWJ6qoJrbkFOfmVq + qkJ4flF2eWpqtrVCQGpRcmpeiYJrRUFqcklmXrqCS2pyUWpicWqxQlp+kYJfarlCZH5RtpKOUn5S + cWpRWWJJZn4ekn8NDHUNzHUNDNEUIHvZGCKdVpRaWJqal1ypZKXkm59XkpFTqaSjBBeNL87IB4eh + r5KOUmleZkmxkpUS1HkwEbgaVSUdpeLUxOL8vMSc+MSUrNLiktzUPFAM+OWXKARDZXIqFRzBcqkp + 2NXDzfMLdlTSUcpJLC6JLy1ISSxJBUUJJDKNdQ3NFQzMrYzNrEARa6qko1SQX1Cak1iUWVKpZGWg + o5SXX5IKciyh0FYoSi3ILyopVijJSFXIycxOzalUSMksAoV7fp5CfppCIjSeUmHxVA6NJ4X8stQi + sLbizAqFXFDgFSskZqQmpoAjCWRecUliSSrIED9ojOkpuOUXKeTmF6UqZOal5RflgmNOoSg1PbEo + BRTRIF2uuQWZRakKwWDNvol5pWmJySWlRSDp4NKistRKhaLUHFBqUEgrys8Fu8AtNSW1KDFHISgV + lBxSFZwS87KR7VUoyyzOLLFSyCgpKbCK0Y/RLy8v18tLLa/ML8pOS03Ryy9Kj9EvBhseo58Kth9G + Q0TjQZ4FrCwztVwvoyQ3R0+pNrYWAKSvQVlqAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '600' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=5E958B9C9763C64FDFB3D6DBE8F94E90~000000000000000000000000000000~YAAQyjfLFxbLXg+WAQAAjHaSGxsmcqIXIHcPj6coz9gFF17hxB+DFgPB3m5BtTmsgWEEN29OR7EdojZqOTs4dj1amm7fD78XwNiTX+SQmtaYXbFwkbnrY+lBP+yPnLMUz8jFXDTDIuMIqJgmC8dPzslESoN4PP3jzcnODrfHq3Powi2cKLQwVXEyxOGtfV+5UM2tZOwchjBjyeMwkluPOqC7aCq9rlf0MihTxwlZpLw85mQZSyO6ZipaW9i3bHnTlj/pXUERmTWOY6caY7pwYJgNky+AgBGoW5WoeUt3OY4KVERPBixKloqsAKs/7I1FBeaLPQWsS2IC3+YXVkSqe0myd3ZZ7ZKQFHIPgI7S3K3H9y+s+G6xfwt6kaOv6LkmjvEaPoBLItbWex3R2OykyQ==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslKyMNAzU6rVoZrx + 5pAwhBtvpGdOTeMtUI03N9YzoabxlmjGm+lZUNF4WAKDBQ5g5qZ6xkq1sbUA/msfA+0CAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '281' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1F4BA74097F3005B97B8645A57;Expires=Thu, 09 Apr 2026 17:21:45 + GMT;Path=/;Secure;HttpOnly + - ak_bmsc=B909A1ED587EB2BA1D9B3FFBCDFB93D2~000000000000000000000000000000~YAAQyjfLFy3LXg+WAQAA3naSGxuHEZjwX6oIcv5b61SkqHFJCC/T0Rg7LVZicgL9ArIAm2yk0QlsCx62xMmgLNMwe42hwd+KZz02Q+/0fZVYkr+ol8qhQgklUJZWWwpInlaybGGnC8qolYFd+JD69yWMPL23wS3omB+XXXSxyE+FkeNic1DNMxlGIRgmdgkrQh/jc6jmk+imu34es/QTrH++lPoDxTNz8wJs4iXuf9BYRyn39cRuEqhq2tw20OyLSpoDd1JLZ1M+MXrprjuOH2Xl22oiT+CFU61jS4eTjCTft/ZpDWr4gtkmo9UosvhKfn9BUKgzKE1FEXRUchYnUzJSvEb02vJNJ1v5xpJzYUZVCxFXGafGrEjl0vz0fo6ddw==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIyN9YzVarVoZrx + 5pAwhBtvqGdCTeMt0Iw31zOnpvGWaMabUNV4WAKDBw5gRnoGSrWxtQBBtSPi7QIAAA== + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '277' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:05 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FC4CD5838FC56AA3977D4F71B;Expires=Thu, 09 Apr 2026 17:21:45 + GMT;Path=/;Secure;HttpOnly + - ak_bmsc=A819042ED6759861286898B06DB90D6A~000000000000000000000000000000~YAAQyjfLFy7LXg+WAQAA3naSGxt2YwI1jGs6c/cbZA97UwUJUtB9gKE0RMBHrGDBvg3a67Doaz0uy9SW6IHlMNv+tMjYpHc4yPg/plSm2iYSd+B1Ti164BrWUd4ZUmRUrxmfw0t+Ankpfyt43f4u724vYmLN1PtP7Ef83zPIrvXP3m5EvImj5E6K3puHcPhamdClADX7UctJZo4dK7DZyalekcyBpL8+n1WFuKtknI9ftZOFeBOjkRpTOtXnr1tOWI+LI5lBNNMtItMf4azN1EH1XQCT+gnYqmQ/aPtBdYeMoWluHpXyMRZgp2rcbDHvPKbxr9fFiIFuXR8b6oVSqMQA+pTwkVe+8mAqzPqAjgmbzlXdW4TSZ/rzYWmJNOHqhg==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslLSNdczVKrVoZrx + 5pAwhBtvqGdATeMt0Iy31DOjpvGWqMYbUNXxsPQFCxtDUMgDFlsLACb60uvrAgAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '276' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:02 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FE1B10141FDC7B4C5EA6680FC;Expires=Thu, 09 Apr 2026 17:21:45 + GMT;Path=/;Secure;HttpOnly + - ak_bmsc=DB78E2ABA3BAE4A89B36B07E7429ABB5~000000000000000000000000000000~YAAQyjfLFy/LXg+WAQAA4naSGxufKDpQsiWcWEc9GvTUqgC/jU5xl5tyJ1Z9HwKv9OgHJKbjuyp7NET3A0+G8TJvvNFxs8OzvroF0/Pyk1hPWiJDFZMgbHnWFDY68Ak+GPIJrukHzmLtKyWp/mJFzBjI8prj9Z8zNvfXfp+ABo5QF+7vb6ES0NO+JQ2qJrIV7LSxA+Yr8XHBsJLJazGgEIoEGaA0mjERQJa4gY/qPd4wfs/ygltKwwFd4E1mRjYZug/k0QHW1p0RmUybTxdDGTr4tg9dMydNBxAVLaoDdvN3+gMP25iHdcsc6xClZYR0u5wl9VatHKbNZMTCb/175ibFBeiO9Unhk5yUaYZcTEfXuw8kmV2C9miLr2oIMic7uA==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslLStdAzUqrVoZrx + 5pAwhBtvaEBd8y3QzDemrvGWaMYb6RlSMXRgKQwWOoCZ6Bkr1cbWAgA7Zat87QIAAA== + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '277' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FD059A6C91655C61BF6063A5A;Expires=Thu, 09 Apr 2026 17:21:45 + GMT;Path=/;Secure;HttpOnly + - ak_bmsc=70826B6F2868EABEEBF20E353149EFD9~000000000000000000000000000000~YAAQyjfLFzDLXg+WAQAA4naSGxs8Fp4bSe14q8m12d0d9sTRTK0hyTlG+l3WOJD/1nM1jEnF3v8gLf2RCIGuLizMWvGD4rkM8xtRLm3xqCSB5tX0B2yjjlGL7HQootKJQmZsAlejZQxh+mrBCWRlcmG8hAox408IEcducwmZzQ96UFjrWsmBn42VpZ8FDckrT9cd9S+jcTwu/Gpl1FwetAESJeVeihk4HPZrgcIIFr0Yh86bKueAr1DpLpDhxEXZuYhBv+Ft22puv8IjdhBdTpo0dP4Dxp8TR+30I7vqYLHCFLO0TsGYVrspHoPralbqGU/BU2SyRQvISjqkNKcp2i7ZIkteQXYgXd2kpeVP42pd2GtFMA4dmI4PBQ94eUGI; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIy0zNUqtWhmunm + kCCEmW6hZ0RN0y3QTTelpumWqKYbGuqZUdF4WOqCBQ1ghkZ6lkq1sbUAODSAb+oCAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '278' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FC0CF90164E0F25C0F1D3F29E;Expires=Thu, 09 Apr 2026 17:21:45 + GMT;Path=/;Secure;HttpOnly + - ak_bmsc=8FFA8C9AE789E4D7A8ED798732110F26~000000000000000000000000000000~YAAQyjfLFzPLXg+WAQAA5XaSGxsppe8GbEAo2RHWrNV411rNhR15HMEPqYzT5aEmt2E8HKTmrbvUEsmGvUSajNrXgZyunL9wCACkLwd8GrskzsrysibAOpllFNU00PaxNyyGqAX/e3Zcwr8qoIlRurUx5tgSNuc9ZPfdY13hl/p28vhbrmXS7slyWndC/g9+lzlyQMuKuZRKSOK844Q56+/+ejA/+qjNRgaz7jazCh8pfsBO+2hAMNVlUc9A9vsQOQm+6vBdcngZMKglBKiCLeJG+GFjx4H6B4YzuCn2zfF2kQj8Vies7N6deIIWYjHeh2kB385HzhUEa53UbLHPKa/Pk6ZGLOTEvjR1iTLVHdM1dIh68w8gF/I21lVXVfeaHg==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslKy1DNSqtWhmunm + kCCkkekW6KabUdPtlqimGxrqUdN4WOqCBQ1ghmZ6hkq1sbUAOQhuZeoCAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '272' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FD8D147A463C9C5E92D351136;Expires=Thu, 09 Apr 2026 17:21:45 + GMT;Path=/;Secure;HttpOnly + - ak_bmsc=23E0BB1CA684D853636DF070B21C16F6~000000000000000000000000000000~YAAQyjfLFzvLXg+WAQAA+HaSGxtQJtFAvyO4ZqVra8PuGSFl0DGKhN9REmwG8ZMoDLnwPQxlOlouUTUB2rjW7aov7iaNP1h4cG2QeFoNvr1/6xEhL1YlVS2HVl0A3VTlwp/vhM251gFT1LzR8NhUqLmtTthU44rVdNlEOqvEt1WppRaJNxYiVrox4tircyywW+vFCPjgH7Z/und9nHqYJs8jkZvJ3yaeS/B5nvllGdXOwdEXsXs+vgPesjmYkr9oUGNvVLzNvIaHI9TtQDE++UQl+ZnvWZdYmVJ2aWnD00AsNG7+rV2gOkKS8A4XmELeU44J77x9HZRLjk60sm7/p/H4xsg/vFnqqrnxXVkSaicgnM+aGGUCZQ+E0XMSm0FiYg==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=A819042ED6759861286898B06DB90D6A~000000000000000000000000000000~YAAQyjfLFy7LXg+WAQAA3naSGxt2YwI1jGs6c/cbZA97UwUJUtB9gKE0RMBHrGDBvg3a67Doaz0uy9SW6IHlMNv+tMjYpHc4yPg/plSm2iYSd+B1Ti164BrWUd4ZUmRUrxmfw0t+Ankpfyt43f4u724vYmLN1PtP7Ef83zPIrvXP3m5EvImj5E6K3puHcPhamdClADX7UctJZo4dK7DZyalekcyBpL8+n1WFuKtknI9ftZOFeBOjkRpTOtXnr1tOWI+LI5lBNNMtItMf4azN1EH1XQCT+gnYqmQ/aPtBdYeMoWluHpXyMRZgp2rcbDHvPKbxr9fFiIFuXR8b6oVSqMQA+pTwkVe+8mAqzPqAjgmbzlXdW4TSZ/rzYWmJNOHqhg==; + bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + cookiesession1=678A3E1FC4CD5838FC56AA3977D4F71B + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPd/PwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJbaUlpUaqCY1lqUWJ6qoJrbkFOfmVq + qkJ4flF2eWpqtrVCQGpRcmpeiYJrRUFqcklmXrqCX76Cc0ZiXnqqQlp+kYJfarlCZH5RtpKOUn5S + cWpRWWJJZn4ekn8NDHUNzHUNDNEUIHvZGCKdVpRaWJqal1ypZKXkm59XkpFTqaSjBBeNL87IB4eh + r5KOUmleZkmxkpUS1HkwEbgaVSUdpeLUxOL8vMSc+MSUrNLiktzUPFAM+OWXKARDZXIqFRzBcqkp + 2NXDzfMLdlTSUcpJLC6JLy1ISSxJTYFHmLGuobmCgbmVsZmVgamugamSjlJBfkFpTmJRZkmlkpWB + jlJefkkqyLGEQluhKLUgv6ikWKEkI1UhJzM7NadSISWzCBTu+XkK+WkKidB4SoXFUzk0nhTyy1KL + wNqKMysUckGBV6yQmJGamAKOJJB5xSWJJakgQ/ygMaan4JZfpJCbX5SqkJmXll+UC445haLU9MSi + FFBEg3S55hZkFqUqBIM1+ybmlaYlJpeUFoGkg0uLylIrFYpSc1ITi1MV0oryc8EucEtNSS1KzFEI + SgUlh1QFp8S8bGR7FcoyizNLrBQySkoKrGL0Y/TLy8v18lLLK/OLstNSU/Tyi9Jj9IvBhsfop4Lt + h9EQ0XiQZwEry0wt18soyc3RU6qNrQUAZ9jAHWoDAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '602' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:05 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=A819042ED6759861286898B06DB90D6A~000000000000000000000000000000~YAAQyjfLF7LLXg+WAQAAv3eSGxt4AHZfBfMEePjqwKDb+pnH9Teg/DwcocnRd70QHWw9hLHeLKuxinEAjns0SGZOu1sjramBcBB2sAOEabdDrbMr6SfHERIH3ccsB/tK3j1LfZdEafIGg8tyGN60zkx3doLCVv+WnWXpyAhtv5DbiapXUEknLrIeRnyicHRIVnEDTr5BbinMc2av2DkBMS1/w623sMKi4d8/jkPeZVI/rTtGI/vYOlRwbmQtAHQymM5GE4KoLGzH3eYrC7oToQwGUHTDejXioBOfb/DuyhIDLdtM3hlpBiWancHThRJH/kN0uxRZssVayNDimMEELXCg3YH2H3sAWxgO1p7pj/YlPNXJW9BB8LZngrVERVQV/IenF2ieEo4ZpUcfL4NM7Q==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLF7PLXg+WAQAAv3eSGxsxGVEFml72xF8V4ZsLmaDsJfGi/lSniflv6HnoTPpd9TuJFAcHVaJqzNN+x9RSvKS3XSwxv/sFhFG5Qu/22uyQqvMQp5/PBMBxisOBvSG2wvuPK/IJuZqV5KsDxwBLNaBCdJhL89eeV6dI4wjY3SMJOwvhejyVSomfimErQmbeu2hYL83k8gfCIHcXovRXu6SXWWB1Lk1DL0N+cnfBRWd4OfzQ4S9ilR0Fz0Vit+i4NQ==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=DB78E2ABA3BAE4A89B36B07E7429ABB5~000000000000000000000000000000~YAAQyjfLFy/LXg+WAQAA4naSGxufKDpQsiWcWEc9GvTUqgC/jU5xl5tyJ1Z9HwKv9OgHJKbjuyp7NET3A0+G8TJvvNFxs8OzvroF0/Pyk1hPWiJDFZMgbHnWFDY68Ak+GPIJrukHzmLtKyWp/mJFzBjI8prj9Z8zNvfXfp+ABo5QF+7vb6ES0NO+JQ2qJrIV7LSxA+Yr8XHBsJLJazGgEIoEGaA0mjERQJa4gY/qPd4wfs/ygltKwwFd4E1mRjYZug/k0QHW1p0RmUybTxdDGTr4tg9dMydNBxAVLaoDdvN3+gMP25iHdcsc6xClZYR0u5wl9VatHKbNZMTCb/175ibFBeiO9Unhk5yUaYZcTEfXuw8kmV2C9miLr2oIMic7uA==; + bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + cookiesession1=678A3E1FE1B10141FDC7B4C5EA6680FC + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOdXTz9HA3MzHz93IKc/CKRDSDZ+JLMkpxUJSsl59KiotS8EgXHstSixPRUBdfcgpz8 + ytRUhfD8ouzy1NRsawWXzLS00uLM/DwFz7yU1AqFtPwiBb/UcoXI/KJsJR2l/KTi1KKyxJLM/Dwk + XxoY6hqY6xoYoilA9qgxRDqtKLWwNDUvuVLJSsk3P68kI6dSSUcJLhpfnJEPDjlfJR2l0rzMkmIl + KyWwQ2B8uAqYaHFqYnF+XmJOfGJKVmlxSW5qHijk/fJLFIKhMjmVCo5gudQUJR0lLOrhZvoFOyrp + KOUkFpfElxakJJakgqICEonGuobmCgbmVsZmVgZGugamSjpKBfkFpTmJRZkllUpWhjpKefklqSDn + EgxkhaLUgvyikmKFkoxUheSMxLz0VIXMPIVEaKSkwiKlHBopCvllqUVgxQVFqWWZ+aXFCrmgoAPH + DciM4pLEklSF/DR4ROkpuOUXKeTmF4EMTssvygVHmEJRanpiUUpmXjrYMNfcgsyiVIVgsGbfxLzS + tMTkktIikHRwaVFZaqVCUWpOamJxqkJaUX4uWItbakpqUWKOQlAqKBWkKjgl5mUj26tQllmcWWKl + kFFSUmAVox+jX15erpeXWl6ZX5Sdlpqil1+UHqNfDDY8Rj8VbD+MhojGg7wKWFlmarleRklujp5S + bWwtABO2e3ZXAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '582' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:02 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=DB78E2ABA3BAE4A89B36B07E7429ABB5~000000000000000000000000000000~YAAQyjfLF7XLXg+WAQAAwXeSGxt0pRvOHp5Ia3qLImQq8s9rPv35QhS0LFIw+Zks7IZWp3Erd/TQ8Fav8o3rNN8fQ2xH4cANb8kviiDf4C4NTXPKPK4i2pp9i1Tuvr8KqQBp76zvtDghQ3PzpOqJyjANYMwFfF+0QOO8DKkBGdpYowYGiDrFHcgAAPcFVM/JE14JHvXS/1aMQy9bn9zd6S9sM2Agvpq68Q0E0tCDL/iTNSiS7eZ4vqhmFDo5IGNWZbjdfEgkqW+wkEqY6+PE7UWvVK870tZ2RApSU+LWUNv5a/T/VWYXZGpxXV/QCBkRer3LROrDp6WkDYPTy0xtuRFK3ZeZZ9gupBKNEyoprcvoqCCj/pBQegCDbObb1oulnhdqSS7sz10KSJTuaCJIuns=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLF7bLXg+WAQAAwXeSGxtlbOdoGFjAuvV5Eed5JgHjgXlfYLpyTu9gtL0Za2IfsqRNKh0bEMWU0lAhUMVPooJshs1GT0xBIqjjBPLOteBioPDWsw3eE46jUZg6lx6pLwtqv3BlW28IbAxZfJGKV7UAhcd8RqoeRn1bBXZ0P2gCd+EnBocGxjX6ebg6zM8FXdjjwiV8licQSGgoKTWjZGa+rA8hMjt1qkWxE6VHD8VipsyclOWJQIfwlatzh52rag==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=8FFA8C9AE789E4D7A8ED798732110F26~000000000000000000000000000000~YAAQyjfLFzPLXg+WAQAA5XaSGxsppe8GbEAo2RHWrNV411rNhR15HMEPqYzT5aEmt2E8HKTmrbvUEsmGvUSajNrXgZyunL9wCACkLwd8GrskzsrysibAOpllFNU00PaxNyyGqAX/e3Zcwr8qoIlRurUx5tgSNuc9ZPfdY13hl/p28vhbrmXS7slyWndC/g9+lzlyQMuKuZRKSOK844Q56+/+ejA/+qjNRgaz7jazCh8pfsBO+2hAMNVlUc9A9vsQOQm+6vBdcngZMKglBKiCLeJG+GFjx4H6B4YzuCn2zfF2kQj8Vies7N6deIIWYjHeh2kB385HzhUEa53UbLHPKa/Pk6ZGLOTEvjR1iTLVHdM1dIh68w8gF/I21lVXVfeaHg==; + bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + cookiesession1=678A3E1FC0CF90164E0F25C0F1D3F29E + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOdPf0cDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJzaVFRal6JgmNZalFieqqCa25BTn5l + aqpCeH5Rdnlqara1QkBqUTJISVBqQX5RSWZeuoJnXnJRamJxarFCWn6Rgl9quUJkflG2ko5SflJx + alFZYklmfh6Shw0MdQ3MdQ0M0RQg+9kYIp1WlFpYmpqXXKlkpeSbn1eSkVOppKMEF40vzsgHB6Kv + ko5SaV5mSbGSlRLUeTARuBpVJR2l4tTE4vy8xJz4xJSs0uKS3NQ8UBT45ZcoBENlcioVHMFyqSnY + 1cPN8wt2VNJRykksLokvLUhJLEkFxQkkNo11Dc0VDMytjM2sDIx1DUyVdJQK8gtKcxKLMksqlawM + dZTy8ktSQY4lGNwKReBQLlYoyUhVSM5IzEtPVcjMU0iERk8qLHrKodGjkF+WWgRWXFCUWpaZX1qs + kAsKOHDMgMwoLkksSVXIT4NHk56CW36RQm5+EcjgtPyiXHB0KRSlpicWpYBiF6TLNbcgsyhVIRis + 2TcxrzQtMbmktAgkHVxaVJZaqVCUmgNKAgppRfm5YPvdUlNSixJzFIJSQWkgVcEpMS8b2V6Fsszi + zBIrhYySkgKrGP0Y/fLycr281PLK/KLstNQUvfyi9Bj9YrDhMfqpYPthNEQ0HuRVwMoyU8v1Mkpy + c/SUamNrAaXMqj1gAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '585' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=8FFA8C9AE789E4D7A8ED798732110F26~000000000000000000000000000000~YAAQyjfLF8bLXg+WAQAAzHeSGxscxCxcft1XQZFPLfZPTcvATBqDD6DwsV1BWsYAiPKMPueQzr95eCVvuA2oE6wUA8/TWYZJczSN4JQK4gHt9X7UI/XH3loyr8nc53HMGQrVvDsmegpTXFhBz44qknh0OM19cL+aOSrIVB1vVYCVTY6ski+AXtcE5rJ5+zC79Ak/wLkGRfknkDgGo33NecU4Pjuo8KFWMmyCsGCggg6c7C90WIDUWZETewrFuMbmpsEZ/sRwNyFVZWXK/fLDW2uFSHpYDvWX/YK5BWkaVbrTHpIwyKaQswKC857ZJ6gfWBQUvUI0UZzSDPYVkiCE309eJu46SqCnTe98P181yVnYORYvHYFn2zn1aozk3WDMRyjTFSEWXXP52lxaB1U1Mmc=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLF8fLXg+WAQAAzHeSGxs4lQrS6x9qg2JpUvmv6S/gC3h7iH2aDVt5LWHNnBd2S3xrJarrcj6RyyVQevLxbU9rAeNBoVK1jxrj3TPyJqclvx2xYtO/ARXSMDJglbvAFt4KvD2VxY1WdOWR4L9cfbisTu1M0rf4040F42VNv4VTLM2eaU/DzsOWfnpmKxzyne2iLBdef1QLVBj1hY6ib3kLKfrHxIkWLpaETl9Jgqm0IRKk65/piWFoOfttjruAUQ==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=8637360917F91A50A577DC2B49BC38E2~000000000000000000000000000000~YAAQyjfLF+fKXg+WAQAAI3aSGxuvzEkOI2fzh/p7t96PqskB+L7e10VGXewEZJxHyo8JzV6RYpkFAHp4Bfs9wFHhgdiszWdIsTsfVik4Y7LkctINdROKDByL+9nqiCgi3siQ9J4YwvoZS2a9BXQ0MJvX16pHZxyXiC3FLAWfqmvhDs+LIdoO6Z2VSMvtB97ubdQvRWb5IdOLlUW/kdP9f+r0rrmLKx+xIcaVPBaGVJ6c4rD1HLd+/kk1+x5pIVFJ+O9rhUpXqQ4fpLFnbReMMB/gUQktxyBwq0OVoFuQb7zNUFgH86KpahT23Vqgc6m/eJYoUh1tP7njEM4CsCTps7Me+CVN/vKxKh2ciqpLpsiRv4vYRBO9ciAVh7t74dij + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOdXfwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJzaVFRal6JgmNZalFieqqCa25BTn5l + aqpCeH5Rdnlqara1QkBqUTJISVBqQX5RSWZeuoJLanJRamJxarFCWn6Rgl9quUJkflG2ko5SflJx + alFZYklmfh6Shw0MdQ3MdQ0M0RQg+9kYIp1WlFpYmpqXXKlkpeSbn1eSkVOppKMEF40vzsgHB6Kv + ko5SaV5mSbGSlRLUeTARuBpVJR2l4tTE4vy8xJz4xJSs0uKS3NQ8UBT45ZcoBENlcioVHMFyqSnY + 1cPN8wt2VNJRykksLokvLUhJLEkFxQkkNo11Dc0VDMytjM2sDIx1DUyVdJQK8gtKcxKLMksqlawM + dJTy8ktSQY4lGNwKReBQLlYoyUhVSM5IzEtPVcjMU0iERk8qLHrKodGjkF+WWgRWXFCUWpaZX1qs + kAsKOHDMgMwoLkksSVXIT4NHk56CW36RQm5+EcjgtPyiXHB0KRSlpicWpYBiF6TLNbcgsyhVIRis + 2TcxrzQtMbmktAgkHVxaVJZaqVCUmgNKAgppRfm5YPvdUlNSixJzFIJSQWkgVcEpMS8b2V6Fsszi + zBIrhYySkgKrGP0Y/fLycr281PLK/KLstNQUvfyi9Bj9YrDhMfqpYPthNEQ0HuRVwMoyU8v1Mkpy + c/SUamNrAdDMtzRgAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '585' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=8637360917F91A50A577DC2B49BC38E2~000000000000000000000000000000~YAAQyjfLF9DLXg+WAQAA4XeSGxtjrBCvXeFMzGMIpAH81oEW+7kXXNcUVPjp99Dl2YZj0A64j7YJPKJ3DJaTBLIKj/he03BoIRoLFY9cEK6SRBW3mDtoKrrX+QH6hcOv2S1dywMBWjtybuurw38wvjREw9AkPwbgtpoZAIPzhsifVYS5hHC9sfEv9Nden7e+jdIviXuQmGdWdz4Q3dG4Jf0Hk181JCQTpo9ZiKy11iBEp7WwFXJvdsbGLAFLiEnpsJq0QW5O3Fzjak2kmVejCntYrTZLMuc9gWZXDCYfbgknXfnNIaJkpAuxI09l1WH0IKAF13GmDKVXFkYPPOpxof4HgoWKRZox7YK9wg17PvdMsx4uybOrIbbPGutjmTjzqlIqjkYIGZZIEwyF3uHmrA==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=3C14D05E131F9079F1F6989C7210B84A~YAAQyjfLF9HLXg+WAQAA4XeSGxvq9Hzf3rFMhVfRTwUuN7hA9so88292WrN+jMO07jaNFNx4m8uGd8e8O40ZT6RqVNm+7Nfwt1qogdbAe0XcI+epSWmEqC4Sjuovttz8tE6bLx/Vn1a4iVxaMFZN3UpSu4qksdvsEf57A+/SBW2VaphLs8dmsmoM9qb+1pgvPz3ZoFt5vqGds08VTONi7IvjaoaOtV36YF8+pWh7mF89rOGUDRnlOL0flQB4OHsS4IgjTg==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=70826B6F2868EABEEBF20E353149EFD9~000000000000000000000000000000~YAAQyjfLFzDLXg+WAQAA4naSGxs8Fp4bSe14q8m12d0d9sTRTK0hyTlG+l3WOJD/1nM1jEnF3v8gLf2RCIGuLizMWvGD4rkM8xtRLm3xqCSB5tX0B2yjjlGL7HQootKJQmZsAlejZQxh+mrBCWRlcmG8hAox408IEcducwmZzQ96UFjrWsmBn42VpZ8FDckrT9cd9S+jcTwu/Gpl1FwetAESJeVeihk4HPZrgcIIFr0Yh86bKueAr1DpLpDhxEXZuYhBv+Ft22puv8IjdhBdTpo0dP4Dxp8TR+30I7vqYLHCFLO0TsGYVrspHoPralbqGU/BU2SyRQvISjqkNKcp2i7ZIkteQXYgXd2kpeVP42pd2GtFMA4dmI4PBQ94eUGI; + bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + cookiesession1=678A3E1FD059A6C91655C61BF6063A5A + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPdXDz9HA3MzHz93IKc/CKRDSDZ+JLMkpxUJSslt9KS0qJUBcey1KLE9FQF19yCnPzK + 1FSF8Pyi7PLU1GxrBZfMtLTS4sz8PAXPvJTUCoW0/CIFv9Ryhcj8omwlHaX8pOLUorLEksz8PCRP + GhjqGpjrGhiiKUD2pzFEOq0otbA0NS+5UslKyTc/ryQjp1JJRwkuGl+ckQ8OOF8lHaXSvMySYiUr + JbBDYHy4CphocWpicX5eYk58YkpWaXFJbmoeKOD98ksUgqEyOZUKjmC51BQlHSUs6uFm+gU7Kuko + 5SQWl8SXFqQklqSCYgISh8a6huYKBuZWxmZWoPg0VdJRKsgvKM1JLMosqVSyMtRRyssvSQU5l1AY + KxSlFuQXlRQrlGSkKuRkZqfmVCqkZBalJoMCVSE/TSERGjupsNgph8aOQn5ZahFYW3FmhUIuKPiK + FRIzUhNTwNEEMq+4JLEkFWSIHzTO9BTc8osUcvOLUhUy89Lyi3LBcadQlJqeWJSSmZcONs41tyCz + KFUhGKzZNzGvNC0xuaS0CCQdXFpUllqpUJSak5pYnKqQVpSfC9bilpqSWpSYoxCUCkoQqQpOiXnZ + yPYqlGUWZ5ZYKWSUlBRYxejH6JeXl+vlpZZX5hdlp6Wm6OUXpcfoF4MNj9FPBdsPoyGi8SDPAlaW + mVqul1GSm6OnVBtbCwDAR5/cYQMAAA== + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '592' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=70826B6F2868EABEEBF20E353149EFD9~000000000000000000000000000000~YAAQyjfLF9LLXg+WAQAA4XeSGxtpMA2RZlwuRAay34DOO0zmNgNERWCMFVnaiLocW3i/qrw12ZkrvaytTMm5KPURZ5MKWICR3p9z2uqOnL7XEJBFpCipB1qzUe+U2jUrl+wyK4KbsU2yGPZrC+/cfuNDQ3JG3D60UvmZcb/4+9B8HsKzzE3FJ5uCfSgFwlHhEBBQRUUccufhBMgzc9H3Ve/zQeao3rKzr8vkDISlA7WJxKxsw9dJm2PQkfJcQQh3554pCPygCWcHvKNeyZ0++fSjzHm64RcEcDRrNDpXjqqAbp1SFx8WUBD+wYZULdnqH5oR58+3cZX3x99Z5abAufqLO1WVQd4OPiV13hVg39iQLDvlokmgUz8xaud0ZbAZjv66a62QiNYUavhgaaQ50A==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLF9PLXg+WAQAA4XeSGxtxnG7jDfMhjdePeGm/ghTdYSEG2Akwt/RF7uqgrqvQc8cEmq1NmDlhvBiV1krJ+8X6E1IYVIa2UnLKzcYT7JcmOoD8itIEJcR2liAq97NyP5X9xrjvdWgGHzOIjXSXbVSJuGyViuZDiLtEfHJYsufDetdzswulWTYRmZfRaUyvVyf3CcycKkQrGUhS3oea1BL3PSHVOi3qwxaP+dSpnOJ78PoAivemmtNAtyu21TUulQ==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=23E0BB1CA684D853636DF070B21C16F6~000000000000000000000000000000~YAAQyjfLFzvLXg+WAQAA+HaSGxtQJtFAvyO4ZqVra8PuGSFl0DGKhN9REmwG8ZMoDLnwPQxlOlouUTUB2rjW7aov7iaNP1h4cG2QeFoNvr1/6xEhL1YlVS2HVl0A3VTlwp/vhM251gFT1LzR8NhUqLmtTthU44rVdNlEOqvEt1WppRaJNxYiVrox4tircyywW+vFCPjgH7Z/und9nHqYJs8jkZvJ3yaeS/B5nvllGdXOwdEXsXs+vgPesjmYkr9oUGNvVLzNvIaHI9TtQDE++UQl+ZnvWZdYmVJ2aWnD00AsNG7+rV2gOkKS8A4XmELeU44J77x9HZRLjk60sm7/p/H4xsg/vFnqqrnxXVkSaicgnM+aGGUCZQ+E0XMSm0FiYg==; + bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + cookiesession1=678A3E1FD8D147A463C9C5E92D351136 + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPdPP0cDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJbaUlpUaqCY1lqUWJ6qoJrbkFOfmVq + qkJ4flF2eWpqtrVCQGpRcmpeiYJrRUFqcklmXrqCZ15yUWpicWqxQlp+kYJfarlCZH5RtpKOUn5S + cWpRWWJJZn4ekn8NDHUNzHUNDNEUIHvZGCKdVpRaWJqal1ypZKXkm59XkpFTqaSjBBeNL87IB4eh + r5KOUmleZkmxkpUS1HkwEbgaVSUdpeLUxOL8vMSc+MSUrNLiktzUPFAM+OWXKARDZXIqFRzBcqkp + 2NXDzfMLdlTSUcpJLC6JLy1ISSxJBUUJJDKNdQ3NFQzMrYzNrEARa6qko1SQX1Cak1iUWVKpZGWo + o5SXX5IKciyh0FYoSi3ILyopVijJSFXIycxOzalUSMksAoV7fp5CfppCIjSeUmHxVA6NJ4X8stQi + sLbizAqFXFDgFSskZqQmpoAjCWRecUliSSrIED9ojOkpuOUXKeTmF6UqZOal5RflgmNOoSg1PbEo + BRTRIF2uuQWZRakKwWDNvol5pWmJySWlRSDp4NKistRKhaLUHFBqUEgrys8Fu8AtNSW1KDFHISgV + lBxSFZwS87KR7VUoyyzOLLFSyCgpKbCK0Y/RLy8v18tLLa/ML8pOS03Ryy9Kj9EvBhseo58Kth9G + Q0TjQZ4FrCwztVwvoyQ3R0+pNrYWAMcLbEJqAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '600' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=23E0BB1CA684D853636DF070B21C16F6~000000000000000000000000000000~YAAQyjfLF9bLXg+WAQAA4neSGxuBd/dkfbMtekUMBRycfZQVoRE0SfKHek8mDfn+xfB5eN7GvwGF+e50EpRtI4w0zgJYb6lFJHGIgEgDhR1EviTMsD6QfeXtzCZbzPt1r++smPsyB5XX76p4eJ4jaRG7YUdGZpSU6K76ay+HSrtKTl/pG4U8lEdLk7QBwlBVzF65WGxrRbNsrdzU9E0gmOnG6FNC+A0Ym/PUX4/VOgfqkTG1QGOEDeKbgzn9D4HI5vnoJOXfJ6+GLN2UztCYT2cnSdUepP0MA4AFnxFzk70b7Jm2X+OOMgt+XBjMVHIGIpTHZCDbsqRLEjDFzlD1nAMziHYe1q3RVjeNJ9V23OozKoz4maNR2Vp2Hnb5BM238J34e26U3TEXQdHOmQytC3Q=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLF9fLXg+WAQAA4neSGxtCkVGCz/dz2tlPFLNjbWXySc4snaP10xj5YS6WSuXIVQRBjNsltKPvbaGT65S5BU0qOelC6nAuE1m4QTV2A7/QWmuFgNZySCveyup0Ty7FS46MYGcSW9XOcmSmt9mqCrNJIcjCSQqpwDjOt/XQxzY1cei9Vfg9idoAuKQqgKixUXRxo7TzERTtKbLVUQFZ2PFt7NchKggATfN3+DTV6LbuvjHjdrhzSQ8wGJ/O54+zfw==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=B909A1ED587EB2BA1D9B3FFBCDFB93D2~000000000000000000000000000000~YAAQyjfLFy3LXg+WAQAA3naSGxuHEZjwX6oIcv5b61SkqHFJCC/T0Rg7LVZicgL9ArIAm2yk0QlsCx62xMmgLNMwe42hwd+KZz02Q+/0fZVYkr+ol8qhQgklUJZWWwpInlaybGGnC8qolYFd+JD69yWMPL23wS3omB+XXXSxyE+FkeNic1DNMxlGIRgmdgkrQh/jc6jmk+imu34es/QTrH++lPoDxTNz8wJs4iXuf9BYRyn39cRuEqhq2tw20OyLSpoDd1JLZ1M+MXrprjuOH2Xl22oiT+CFU61jS4eTjCTft/ZpDWr4gtkmo9UosvhKfn9BUKgzKE1FEXRUchYnUzJSvEb02vJNJ1v5xpJzYUZVCxFXGafGrEjl0vz0fo6ddw==; + bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLFxfLXg+WAQAAjHaSGxsjqjkb6qx+Fy9TiPhW/YJC5knB7uo8qImtpGkBf5avTjHporuSRztsHj7V34Q3UYBNFAvfzhBM2sFfpMr0tLyUOoHjFPTdqajDAJ9sptd2szUWc2GfHn1i7Z2PsnmHSZVkhZxzsgbalCsgO7x+M+A56q3KwGZ5tBynP1B+CKCUKZzpxssiGHxVI6oZtc4EAowJgF1CH3gG2eWPxK0QrUE2xZzNnSnWDfr7KHX9jheQiw==~1; + cookiesession1=678A3E1F4BA74097F3005B97B8645A57 + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOd/fwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJzaVFRal6JgmNZalFieqqCa25BTn5l + aqpCeH5Rdnlqara1QkBqUTJISVBqQX5RSWZeuoJfvoJzRmJeeqpCWn6Rgl9quUJkflG2ko5SflJx + alFZYklmfh6Shw0MdQ3MdQ0M0RQg+9kYIp1WlFpYmpqXXKlkpeSbn1eSkVOppKMEF40vzsgHB6Kv + ko5SaV5mSbGSlRLUeTARuBpVJR2l4tTE4vy8xJz4xJSs0uKS3NQ8UBT45ZcoBENlcioVHMFyqSnY + 1cPN8wt2VNJRykksLokvLUhJLElNgceYsa6huYKBuZWxmZWBsa6BqZKOUkF+QWlOYlFmSaWSlaGO + Ul5+SSrIsQSDW6EIHMrFCiUZqQrJGeBAzsxTSIRGTyosesqh0aOQX5ZaBFZcUJRalplfWqyQCwo4 + cMyAzCguSSxJVchPg0eTnoJbfpFCbn5RqkJmXlp+US44uhSKUtMTi1JAsQvS5ZpbkFmUqhAM1uyb + mFealphcUloEkg4uLSpLrVQoSs1JTSxOVUgrys8F2++WmpJalJijEJQKSgOpCk6JednI9iqUZRZn + llgpZJSUFFjF6Mfol5eX6+WlllfmF2Wnpabo5Relx+gXgw2P0U8F2w+jIaLxIK8CVpaZWq6XUZKb + o6dUG1sLAGa+Kf5gAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '585' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:21:45 GMT + Expires: + - Wed, 09 Apr 2025 17:21:45 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=B909A1ED587EB2BA1D9B3FFBCDFB93D2~000000000000000000000000000000~YAAQyjfLF+TLXg+WAQAA7XeSGxtffcdUCVoEDI0LgXiR/qwLrL46U7daD5WTQ0n/rpty3wv70p0wlp4yQ5YMchSpuUc9sy9NQx7xxQIli8gnqfCKB1//Hm7rPkXAOfbkb+HZm4nEBu2rnTvVWs0UYKW7Se/EY/CN7wgzJBq7s6BmeA4Eb3l2WsTaFEX+eqnKQ434bad6nfXe6ArwtIwS7+QPvSsbgP/DYQ53oD9bFJidudycpooe2AEGdSMvVDZAB8rTdTrwq/IOr9XRkJ1E6wqMePAVot4mLJfecYrmxCDypb1OI7zi4/gIS+UdLuxfCQJXrcC49wDcL7wDcERxv9heVMd6G61nfdY6DSOvZO1DPyl5jN/efMq7cFWsDeen/wJC+uGxHeD1HBin/2Tc7W8=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200 + - bm_sv=B35483E70F0262919715B9F07A98E452~YAAQyjfLF+XLXg+WAQAA7XeSGxueJqAZJoaILIY2w6+54hYiIEq+fyzA+xssOZZjK1QwoK9OA543M72NndpdQvM2wfZocs5yVVFdDLCYFcK4FueJr0VLUThnZB3SmsZeBVo7TKsDQ78uSFnDOMqR0k2HVkQgyIbcIq0xKEbsDcvW9VFfGWw7fbO6vlN1iyKzEVDL7h1MV3z5/Jn3is2ixuUtCLO8vIGbqkRDxt6Syno9xKqTLI+072wMEaZKzlsbu9HTnQ==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:21:45 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v2.yaml b/openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v2.yaml new file mode 100644 index 00000000000..077b946420b --- /dev/null +++ b/openbb_platform/providers/fred/tests/record/http/test_fred_fetchers/test_fred_manufacturing_outlook_ny_fetcher_urllib3_v2.yaml @@ -0,0 +1,904 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslLSNdczVKrVoZrx + 5pAwhBtvqGdATeMt0Iy31DOjpvGWqMYbUNXxsPQFCxtDUMgDFlsLACb60uvrAgAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '276' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:42 GMT + Expires: + - Wed, 09 Apr 2025 17:20:42 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:02 GMT + Pragma: + - no-cache + Server: + - Apache + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIyN9YzVarVoZrx + 5pAwhBtvqGdCTeMt0Iw31zOnpvGWaMabUNV4WAKDBw5gRnoGSrWxtQBBtSPi7QIAAA== + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '277' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:42 GMT + Expires: + - Wed, 09 Apr 2025 17:20:42 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:05 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF9hWXg+WAQAARoGRGxu0dgc06v/ylTKpG3ZXMqjiUvT73Kg47DbvBqHgYe7dZUPjApmBod9IG2tS/aYTmDBo6D/bOu6UpvECWozpdwZ9k9fug79IDIsQ+zrYPJeJJ7rTJQ9qFAH4/JIfSc6l8qWrWSwNA9b3AEhW8qePdyz00+orBCWIVcSKNeACAEBYT80BqEV0EwNYWOPoCm7isIQUIKHXOpSIqGKBxytNBtOiqom6327aWQYWqSdLeWZdV6zhCzTN//Cltgp03kUJixg+fNyF/zBWAvNX0eDXLqmIc8pferBclLMjfOw4XolX6/BJza9k/IgRQY0Kpi3qibe3fxe9PfUH3NUUCzeh402qMUUvcQaX9ttXCEiYEA==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslKyMNAzU6rVoZrx + 5pAwhBtvpGdOTeMtUI03N9YzoabxlmjGm+lZUNF4WAKDBQ5g5qZ6xkq1sbUA/msfA+0CAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '281' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:42 GMT + Expires: + - Wed, 09 Apr 2025 17:20:42 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOdXTz9HA3MzHz93IKc/CKRDSDZ+JLMkpxUJSsl59KiotS8EgXHstSixPRUBdfcgpz8 + ytRUhfD8ouzy1NRsawWXzLS00uLM/DwFz7yU1AqFtPwiBb/UcoXI/KJsJR2l/KTi1KKyxJLM/Dwk + XxoY6hqY6xoYoilA9qgxRDqtKLWwNDUvuVLJSsk3P68kI6dSSUcJLhpfnJEPDjlfJR2l0rzMkmIl + KyWwQ2B8uAqYaHFqYnF+XmJOfGJKVmlxSW5qHijk/fJLFIKhMjmVCo5gudQUJR0lLOrhZvoFOyrp + KOUkFpfElxakJJakgqICEonGuobmCgbmVsZmVgZGugamSjpKBfkFpTmJRZkllUpWhjpKefklqSDn + EgxkhaLUgvyikmKFkoxUheSMxLz0VIXMPIVEaKSkwiKlHBopCvllqUVgxQVFqWWZ+aXFCrmgoAPH + DciM4pLEklSF/DR4ROkpuOUXKeTmF4EMTssvygVHmEJRanpiUUpmXjrYMNfcgsyiVIVgsGbfxLzS + tMTkktIikHRwaVFZaqVCUWpOamJxqkJaUX4uWItbakpqUWKOQlAqKBWkKjgl5mUj26tQllmcWWKl + kFFSUmAVox+jX15erpeXWl6ZX5Sdlpqil1+UHqNfDDY8Rj8VbD+MhojGg7wKWFlmarleRklujp5S + bWwtABO2e3ZXAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '582' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:42 GMT + Expires: + - Wed, 09 Apr 2025 17:20:42 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:02 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=91900E3E6D2790E46AB61D1B739BFFE7~000000000000000000000000000000~YAAQyjfLFxxXXg+WAQAA5YGRGxu5NKtL39++oxYyI0rbpYX8rU6doi05oRNG0HdBV+irqU2G3tQfEWIFhOm4/mAXb3flob8+oVIi0yeq4YPsUiTksFP+BUf745xxZDQ9i3zBNr+gt2obqF2aij3f6h1M6WJevoBTy04lbSJKon7M43tVetJl/QnnmxLaNKXhW45aZfDK5HXRdxn12X72jKUI8gPwDiRqPr0AI0DhLhEa7l5snmeIAKUa39QHDjQpj8AooftUM+mKlqbdBIvMwSF3UFp9VjfOILxomCi279cROi+fVaUDWaUJvJXsqed9HNR00WrlKmGsix+lRPx/DNd52QVI6FpZe457uHTdCnsi0vlUa3hXEsU/WU6NGr5oIQ==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF9hWXg+WAQAARoGRGxu0dgc06v/ylTKpG3ZXMqjiUvT73Kg47DbvBqHgYe7dZUPjApmBod9IG2tS/aYTmDBo6D/bOu6UpvECWozpdwZ9k9fug79IDIsQ+zrYPJeJJ7rTJQ9qFAH4/JIfSc6l8qWrWSwNA9b3AEhW8qePdyz00+orBCWIVcSKNeACAEBYT80BqEV0EwNYWOPoCm7isIQUIKHXOpSIqGKBxytNBtOiqom6327aWQYWqSdLeWZdV6zhCzTN//Cltgp03kUJixg+fNyF/zBWAvNX0eDXLqmIc8pferBclLMjfOw4XolX6/BJza9k/IgRQY0Kpi3qibe3fxe9PfUH3NUUCzeh402qMUUvcQaX9ttXCEiYEA== + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPd/PwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJbaUlpUaqCY1lqUWJ6qoJrbkFOfmVq + qkJ4flF2eWpqtrVCQGpRcmpeiYJrRUFqcklmXrqCX76Cc0ZiXnqqQlp+kYJfarlCZH5RtpKOUn5S + cWpRWWJJZn4ekn8NDHUNzHUNDNEUIHvZGCKdVpRaWJqal1ypZKXkm59XkpFTqaSjBBeNL87IB4eh + r5KOUmleZkmxkpUS1HkwEbgaVSUdpeLUxOL8vMSc+MSUrNLiktzUPFAM+OWXKARDZXIqFRzBcqkp + 2NXDzfMLdlTSUcpJLC6JLy1ISSxJTYFHmLGuobmCgbmVsZmVgamugamSjlJBfkFpTmJRZkmlkpWB + jlJefkkqyLGEQluhKLUgv6ikWKEkI1UhJzM7NadSISWzCBTu+XkK+WkKidB4SoXFUzk0nhTyy1KL + wNqKMysUckGBV6yQmJGamAKOJJB5xSWJJakgQ/ygMaan4JZfpJCbX5SqkJmXll+UC445haLU9MSi + FFBEg3S55hZkFqUqBIM1+ybmlaYlJpeUFoGkg0uLylIrFYpSc1ITi1MV0oryc8EucEtNSS1KzFEI + SgUlh1QFp8S8bGR7FcoyizNLrBQySkoKrGL0Y/TLy8v18lLLK/OLstNSU/Tyi9Jj9IvBhsfop4Lt + h9EQ0XiQZwEry0wt18soyc3RU6qNrQUAZ9jAHWoDAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '602' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:42 GMT + Expires: + - Wed, 09 Apr 2025 17:20:42 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:05 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyRXXg+WAQAA94GRGxtBjZ+HnFu3fOQVKUKMLbH3wQp5nPWDNfY/F9Nno7pf/YRL89eZD4UXcdmpzX2Z5Ro1emi+TBYPVz4K854YLWIZrekybu6dCEISxdB575uYoTz7Q4yXEyn0QKkOy2Ct+3M/HZAfOajfmWDEhloaZfEf29iTURDoWo+Qa8jRdGxDew1vzApx7Ze9rBDv5Xyiu652HSiIXpaUfCuk2wk2Nv36JVoQFBKijA304XqDT1wD6P1Edb8FXZQWwz4KTiMG83CGFDZ27D7T4lB9pICDc6UgbXoNYHxyyan1dtVSC38ujZOHgoY/eJgeoCzfZI7eEOoEqzoWgwKUWhHFjv/ALQdTxu+wTImiEhrZSa8NbhEaGe8t8iuzL9I=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7200 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF9hWXg+WAQAARoGRGxu0dgc06v/ylTKpG3ZXMqjiUvT73Kg47DbvBqHgYe7dZUPjApmBod9IG2tS/aYTmDBo6D/bOu6UpvECWozpdwZ9k9fug79IDIsQ+zrYPJeJJ7rTJQ9qFAH4/JIfSc6l8qWrWSwNA9b3AEhW8qePdyz00+orBCWIVcSKNeACAEBYT80BqEV0EwNYWOPoCm7isIQUIKHXOpSIqGKBxytNBtOiqom6327aWQYWqSdLeWZdV6zhCzTN//Cltgp03kUJixg+fNyF/zBWAvNX0eDXLqmIc8pferBclLMjfOw4XolX6/BJza9k/IgRQY0Kpi3qibe3fxe9PfUH3NUUCzeh402qMUUvcQaX9ttXCEiYEA== + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCNNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOd/fwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJzaVFRal6JgmNZalFieqqCa25BTn5l + aqpCeH5Rdnlqara1QkBqUTJISVBqQX5RSWZeuoJfvoJzRmJeeqpCWn6Rgl9quUJkflG2ko5SflJx + alFZYklmfh6Shw0MdQ3MdQ0M0RQg+9kYIp1WlFpYmpqXXKlkpeSbn1eSkVOppKMEF40vzsgHB6Kv + ko5SaV5mSbGSlRLUeTARuBpVJR2l4tTE4vy8xJz4xJSs0uKS3NQ8UBT45ZcoBENlcioVHMFyqSnY + 1cPN8wt2VNJRykksLokvLUhJLElNgceYsa6huYKBuZWxmZWBsa6BqZKOUkF+QWlOYlFmSaWSlaGO + Ul5+SSrIsQSDW6EIHMrFCiUZqQrJGeBAzsxTSIRGTyosesqh0aOQX5ZaBFZcUJRalplfWqyQCwo4 + cMyAzCguSSxJVchPg0eTnoJbfpFCbn5RqkJmXlp+US44uhSKUtMTi1JAsQvS5ZpbkFmUqhAM1uyb + mFealphcUloEkg4uLSpLrVQoSs1JTSxOVUgrys8F2++WmpJalJijEJQKSgOpCk6JednI9iqUZRZn + llgpZJSUFFjF6Mfol5eX6+WlllfmF2Wnpabo5Relx+gXgw2P0U8F2w+jIaLxIK8CVpaZWq6XUZKb + o6dUG1sLAGa+Kf5gAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '585' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyZXXg+WAQAA+YGRGxvjkNFne7Ese3opkq3dhQSh+kMJpeGZ1w30iPT7aVZe+Hog/TZSU6mXHH0HAi3dhe2uywJ+WcbTukPusqytCaxQWmvE2vPyrZmG9VjJ8CXrdDEsqRqUCGPDNROHkrIQxUpCqQTVIzbj405SEsK9AEKAX+yX6kERdYR4ESmvmuOetmo7lUi/x/ReNVURG6qmxXx2RlfmSdNcItZdyON+oN372dZxeZ19LxXqSZQM+veNKj1SHwc3FQdHQGoVlAGDx9MpBeDpCSoI63piDq5E0lCAMNaNE4eAWzOxhSUnJhA+mTzNUXrSOp4nSAe2Xv60Ykb0SSyMc5gJRmYrGGDZ3Waa82u4TYeKeD62h0LaanXqUm3yf6RKHXy4; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7199 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIy0zNUqtWhmunm + kCCEmW6hZ0RN0y3QTTelpumWqKYbGuqZUdF4WOqCBQ1ghkZ6lkq1sbUAODSAb+oCAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '278' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FA267EF1B23F0006D5C5E0FE7;Expires=Thu, 09 Apr 2026 17:20:42 + GMT;Path=/;Secure;HttpOnly + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIyNNczVqrVoZrx + 5pAwhBtvqWdCTeMt0Iw30rOgpvGWaMYb65lT0XhYAoMHjiHI9YDF1gIASLYqOu0CAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '278' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1F69794DB376FC15F068CE7636;Expires=Thu, 09 Apr 2026 17:20:42 + GMT;Path=/;Secure;HttpOnly + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslLStdAzUqrVoZrx + 5pAwhBtvaEBd8y3QzDemrvGWaMYb6RlSMXRgKQwWOoCZ6Bkr1cbWAgA7Zat87QIAAA== + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '277' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1F51008637ECBF18E5DD1BD7AD;Expires=Thu, 09 Apr 2026 17:20:42 + GMT;Path=/;Secure;HttpOnly + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWCDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslIyNNYzVqrVoZrx + 5pAwhBlvqWdETdMtUE03tNAzpKbxlmjGG+qZUdF4WPqChQ1ghoZ6Fkq1sbUA0mXIDOwCAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '281' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1FA39D633645FB96C5FCDC7B5B;Expires=Thu, 09 Apr 2026 17:20:42 + GMT;Path=/;Secure;HttpOnly + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://api.stlouisfed.org/fred/series/observations?api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-10-01&observation_start=2024-06-30&series_id=AWFINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TWwVNJByKbmpaDL5ScVpxaVJZZk + 5uchazbRNTDTNTZQ0lFCVgDXb6JraKBrYKiko1Sal1lSrGSllJOZB1JcWlJQWhJfUlmQqmRlqKOU + lpmTCuUpZRXng5UUpaQWxSdVKlmhGJ2SWJKqpKNUnF9UEp8PUqJkpZRYnKyko5ScX5pXomRlqqOU + n5ZWnFqiZGWgo5STmZtZomRlaAACKI4sVrKKpiRAwA4BByA4DMCeLEvMKU1VslKy1DNSqtWhmunm + kCCkkekW6KabUdPtlqimGxrqUdN4WOqCBQ1ghmZ6hkq1sbUAOQhuZeoCAAA= + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '272' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - cookiesession1=678A3E1F7B8DB7801D2730D138DA45C8;Expires=Thu, 09 Apr 2026 17:20:43 + GMT;Path=/;Secure;HttpOnly + Strict-Transport-Security: + - max-age=86400 + Upgrade: + - h2,h2c + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyZXXg+WAQAA+YGRGxvjkNFne7Ese3opkq3dhQSh+kMJpeGZ1w30iPT7aVZe+Hog/TZSU6mXHH0HAi3dhe2uywJ+WcbTukPusqytCaxQWmvE2vPyrZmG9VjJ8CXrdDEsqRqUCGPDNROHkrIQxUpCqQTVIzbj405SEsK9AEKAX+yX6kERdYR4ESmvmuOetmo7lUi/x/ReNVURG6qmxXx2RlfmSdNcItZdyON+oN372dZxeZ19LxXqSZQM+veNKj1SHwc3FQdHQGoVlAGDx9MpBeDpCSoI63piDq5E0lCAMNaNE4eAWzOxhSUnJhA+mTzNUXrSOp4nSAe2Xv60Ykb0SSyMc5gJRmYrGGDZ3Waa82u4TYeKeD62h0LaanXqUm3yf6RKHXy4; + cookiesession1=678A3E1FA267EF1B23F0006D5C5E0FE7 + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOdPf0cDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJzaVFRal6JgmNZalFieqqCa25BTn5l + aqpCeH5Rdnlqara1QkBqUTJISVBqQX5RSWZeuoJnXnJRamJxarFCWn6Rgl9quUJkflG2ko5SflJx + alFZYklmfh6Shw0MdQ3MdQ0M0RQg+9kYIp1WlFpYmpqXXKlkpeSbn1eSkVOppKMEF40vzsgHB6Kv + ko5SaV5mSbGSlRLUeTARuBpVJR2l4tTE4vy8xJz4xJSs0uKS3NQ8UBT45ZcoBENlcioVHMFyqSnY + 1cPN8wt2VNJRykksLokvLUhJLEkFxQkkNo11Dc0VDMytjM2sDIx1DUyVdJQK8gtKcxKLMksqlawM + dZTy8ktSQY4lGNwKReBQLlYoyUhVSM5IzEtPVcjMU0iERk8qLHrKodGjkF+WWgRWXFCUWpaZX1qs + kAsKOHDMgMwoLkksSVXIT4NHk56CW36RQm5+EcjgtPyiXHB0KRSlpicWpYBiF6TLNbcgsyhVIRis + 2TcxrzQtMbmktAgkHVxaVJZaqVCUmgNKAgppRfm5YPvdUlNSixJzFIJSQWkgVcEpMS8b2V6Fsszi + zBIrhYySkgKrGP0Y/fLycr281PLK/KLstNQUvfyi9Bj9YrDhMfqpYPthNEQ0HuRVwMoyU8v1Mkpy + c/SUamNrAaXMqj1gAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '585' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF2RXXg+WAQAAfIKRGxtScn5j9va+Yg6kgYpEdxDfRATIcLb6Ka8uTKu7CodjCRsEcASNpxUuGOaa4PFI59Z+hDRspxNyN3BpQzIw+Rec1DAvWFzpQ33UGel5U8ZhjuMsxScGyr3UdNlwvD4OcgK0to74ld0PB+wtwzhfmznzjkXtExTfgEux9BVf1/sdK7oJnP440emaRy8ynODeX2JNncw0TDd2A/DvSNvbujeWJh+rMjAbwg9D+f4c8ZNDl/UwqC7AtToWhqHls/yBCv/GcsyRr6QeU+CmE+qreyke/oUo1s0/mG+X+NeU2BYsscCNdRmReTqMmqLrI4f2N5g0qzO9qcblqaO2bCL49un6TzD87uwm4WujpxrIpb9q2Grend8X6k/JQoVxGYsoFtpmWQ==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7199 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyZXXg+WAQAA+YGRGxvjkNFne7Ese3opkq3dhQSh+kMJpeGZ1w30iPT7aVZe+Hog/TZSU6mXHH0HAi3dhe2uywJ+WcbTukPusqytCaxQWmvE2vPyrZmG9VjJ8CXrdDEsqRqUCGPDNROHkrIQxUpCqQTVIzbj405SEsK9AEKAX+yX6kERdYR4ESmvmuOetmo7lUi/x/ReNVURG6qmxXx2RlfmSdNcItZdyON+oN372dZxeZ19LxXqSZQM+veNKj1SHwc3FQdHQGoVlAGDx9MpBeDpCSoI63piDq5E0lCAMNaNE4eAWzOxhSUnJhA+mTzNUXrSOp4nSAe2Xv60Ykb0SSyMc5gJRmYrGGDZ3Waa82u4TYeKeD62h0LaanXqUm3yf6RKHXy4; + cookiesession1=678A3E1F69794DB376FC15F068CE7636 + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPdXPwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJbaUlpUaqCY1lqUWJ6qoJrbkFOfmVq + qkJ4flF2eWpqtrVCQGpRcmpeiYJrRUFqcklmXrqCS2pyUWpicWqxQlp+kYJfarlCZH5RtpKOUn5S + cWpRWWJJZn4ekn8NDHUNzHUNDNEUIHvZGCKdVpRaWJqal1ypZKXkm59XkpFTqaSjBBeNL87IB4eh + r5KOUmleZkmxkpUS1HkwEbgaVSUdpeLUxOL8vMSc+MSUrNLiktzUPFAM+OWXKARDZXIqFRzBcqkp + 2NXDzfMLdlTSUcpJLC6JLy1ISSxJBUUJJDKNdQ3NFQzMrYzNrEARa6qko1SQX1Cak1iUWVKpZGWg + o5SXX5IKciyh0FYoSi3ILyopVijJSFXIycxOzalUSMksAoV7fp5CfppCIjSeUmHxVA6NJ4X8stQi + sLbizAqFXFDgFSskZqQmpoAjCWRecUliSSrIED9ojOkpuOUXKeTmF6UqZOal5RflgmNOoSg1PbEo + BRTRIF2uuQWZRakKwWDNvol5pWmJySWlRSDp4NKistRKhaLUHFBqUEgrys8Fu8AtNSW1KDFHISgV + lBxSFZwS87KR7VUoyyzOLLFSyCgpKbCK0Y/RLy8v18tLLa/ML8pOS03Ryy9Kj9EvBhseo58Kth9G + Q0TjQZ4FrCwztVwvoyQ3R0+pNrYWAKSvQVlqAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '600' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF2dXXg+WAQAAhIKRGxtiQAeflxxxdUS5hC2Zi0Oruqm1u3pnoU9FV5i+O8Kniq+0bY8zRw3tpPhZ2Dquryf0StwRVBEYLsNZBmQtAgEWcNOrgaZW6GDvbJEVK+Vj1t1q8e/X1RTzdAg4pRkswwSDKeHmrPYdaR/pKwxKfttpkzZ/qVTN8ol14Eq15EwLo/Xjb/023TLS0JppJc8x3nh2kOTpe524z4iAW1//M//dG7Xbj5nDyYog+Xi+XlkYk2rnsO2jEtfSLgGno/vUSY1j6VfUWZpwyQOMgnfODnuoCxhfuKjwPBQ37HmeHu+use/hCGtUlRYaNM6/xDNt9X9Pz317HfGV6Mart4ekpDFShnUHMSVYodVV1AiJVjkX7+qw55FDOSo100n0t/V0oSNIuw==; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7199 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyZXXg+WAQAA+YGRGxvjkNFne7Ese3opkq3dhQSh+kMJpeGZ1w30iPT7aVZe+Hog/TZSU6mXHH0HAi3dhe2uywJ+WcbTukPusqytCaxQWmvE2vPyrZmG9VjJ8CXrdDEsqRqUCGPDNROHkrIQxUpCqQTVIzbj405SEsK9AEKAX+yX6kERdYR4ESmvmuOetmo7lUi/x/ReNVURG6qmxXx2RlfmSdNcItZdyON+oN372dZxeZ19LxXqSZQM+veNKj1SHwc3FQdHQGoVlAGDx9MpBeDpCSoI63piDq5E0lCAMNaNE4eAWzOxhSUnJhA+mTzNUXrSOp4nSAe2Xv60Ykb0SSyMc5gJRmYrGGDZ3Waa82u4TYeKeD62h0LaanXqUm3yf6RKHXy4; + cookiesession1=678A3E1F51008637ECBF18E5DD1BD7AD + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFDINA066MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPdXDz9HA3MzHz93IKc/CKRDSDZ+JLMkpxUJSslt9KS0qJUBcey1KLE9FQF19yCnPzK + 1FSF8Pyi7PLU1GxrBZfMtLTS4sz8PAXPvJTUCoW0/CIFv9Ryhcj8omwlHaX8pOLUorLEksz8PCRP + GhjqGpjrGhiiKUD2pzFEOq0otbA0NS+5UslKyTc/ryQjp1JJRwkuGl+ckQ8OOF8lHaXSvMySYiUr + JbBDYHy4CphocWpicX5eYk58YkpWaXFJbmoeKOD98ksUgqEyOZUKjmC51BQlHSUs6uFm+gU7Kuko + 5SQWl8SXFqQklqSCYgISh8a6huYKBuZWxmZWoPg0VdJRKsgvKM1JLMosqVSyMtRRyssvSQU5l1AY + KxSlFuQXlRQrlGSkKuRkZqfmVCqkZBalJoMCVSE/TSERGjupsNgph8aOQn5ZahFYW3FmhUIuKPiK + FRIzUhNTwNEEMq+4JLEkFWSIHzTO9BTc8osUcvOLUhUy89Lyi3LBcadQlJqeWJSSmZcONs41tyCz + KFUhGKzZNzGvNC0xuaS0CCQdXFpUllqpUJSak5pYnKqQVpSfC9bilpqSWpSYoxCUCkoQqQpOiXnZ + yPYqlGUWZ5ZYKWSUlBRYxejH6JeXl+vlpZZX5hdlp6Wm6OUXpcfoF4MNj9FPBdsPoyGi8SDPAlaW + mVqul1GSm6OnVBtbCwDAR5/cYQMAAA== + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '592' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF25XXg+WAQAAjIKRGxsyAU2Kli8IApDa+e86Jqbjhv2KTuR7lWk8w0DeHeX863y9iazfvwXRvAIF1wArift8yX3ItN++uMeCIpdHnDm0NHnkvKCVU+X1gy4bHuRIvJVxyPksNRBW+ldTXG4WfNNMJVbTOVe8G7Cjt52wk1gZnj5hXUulQG3xbPvmJ10tN8gghF40GtuD81qHtGG2pnbNsIsbILOiQ+Mv9ZUU7zuIMoYSzZ2dZVreHbYmnydK7UjxxWfkx0HXG6MtdV1wYAoPtOvxthss932ah9lE/c3otjNvLXxJ8ipuX21A5zywrGKFtVigQ38M3VXR6FiTtNWhcoOcSOcTBMcJp5wYOu7NmDA27PD3OnK9Ey5G+rYl8eeW5ldcyWMhg6HeJeUMLxsYEUU=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7199 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyZXXg+WAQAA+YGRGxvjkNFne7Ese3opkq3dhQSh+kMJpeGZ1w30iPT7aVZe+Hog/TZSU6mXHH0HAi3dhe2uywJ+WcbTukPusqytCaxQWmvE2vPyrZmG9VjJ8CXrdDEsqRqUCGPDNROHkrIQxUpCqQTVIzbj405SEsK9AEKAX+yX6kERdYR4ESmvmuOetmo7lUi/x/ReNVURG6qmxXx2RlfmSdNcItZdyON+oN372dZxeZ19LxXqSZQM+veNKj1SHwc3FQdHQGoVlAGDx9MpBeDpCSoI63piDq5E0lCAMNaNE4eAWzOxhSUnJhA+mTzNUXrSOp4nSAe2Xv60Ykb0SSyMc5gJRmYrGGDZ3Waa82u4TYeKeD62h0LaanXqUm3yf6RKHXy4; + cookiesession1=678A3E1F7B8DB7801D2730D138DA45C8 + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWFINA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcPdPP0cDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJbaUlpUaqCY1lqUWJ6qoJrbkFOfmVq + qkJ4flF2eWpqtrVCQGpRcmpeiYJrRUFqcklmXrqCZ15yUWpicWqxQlp+kYJfarlCZH5RtpKOUn5S + cWpRWWJJZn4ekn8NDHUNzHUNDNEUIHvZGCKdVpRaWJqal1ypZKXkm59XkpFTqaSjBBeNL87IB4eh + r5KOUmleZkmxkpUS1HkwEbgaVSUdpeLUxOL8vMSc+MSUrNLiktzUPFAM+OWXKARDZXIqFRzBcqkp + 2NXDzfMLdlTSUcpJLC6JLy1ISSxJBUUJJDKNdQ3NFQzMrYzNrEARa6qko1SQX1Cak1iUWVKpZGWo + o5SXX5IKciyh0FYoSi3ILyopVijJSFXIycxOzalUSMksAoV7fp5CfppCIjSeUmHxVA6NJ4X8stQi + sLbizAqFXFDgFSskZqQmpoAjCWRecUliSSrIED9ojOkpuOUXKeTmF6UqZOal5RflgmNOoSg1PbEo + BRTRIF2uuQWZRakKwWDNvol5pWmJySWlRSDp4NKistRKhaLUHFBqUEgrys8Fu8AtNSW1KDFHISgV + lBxSFZwS87KR7VUoyyzOLLFSyCgpKbCK0Y/RLy8v18tLLa/ML8pOS03Ryy9Kj9EvBhseo58Kth9G + Q0TjQZ4FrCwztVwvoyQ3R0+pNrYWAMcLbEJqAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '600' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:04 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLF4NXXg+WAQAAtIKRGxst9CNCkZxWd+Zaaz8MspGCDmdntBucGNAJ/qN8X6n0oW6s1+xEJiAioRSZ3X6Y5A91Dpl838hchK/F/UBWL9Qb84R8SALMO1v8Zg10RNn/SEuMK4K4kilq+zGjHRAulTDG6oEIT8bVtPVoz+bZNvZYkgzg+jojBcrwevx4W66JEE5QQq4prfIIdgeySppTRxMdXxLqoE6ohYkoboOtp7bEM+KowQkJwLR9jEARXziqA+TTyhCvgdtXeU3oyUUYkKQD8r1OsonK1YQBPVbexgcxznJXrMmRmLnlCO4a8FdHEEKvnuTQUW0ISM9NsKcyAD18TebsYvGMsX6HRDt4Zfiwa4BDWXzr8VKqCyLI992W4B8OnV3E+hFERX33D9MbTAV8d0M=; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:42 GMT; Max-Age=7199 + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Cookie: + - ak_bmsc=FDB1EFA506B6FFCE4FC3C1E8592F735E~000000000000000000000000000000~YAAQyjfLFyZXXg+WAQAA+YGRGxvjkNFne7Ese3opkq3dhQSh+kMJpeGZ1w30iPT7aVZe+Hog/TZSU6mXHH0HAi3dhe2uywJ+WcbTukPusqytCaxQWmvE2vPyrZmG9VjJ8CXrdDEsqRqUCGPDNROHkrIQxUpCqQTVIzbj405SEsK9AEKAX+yX6kERdYR4ESmvmuOetmo7lUi/x/ReNVURG6qmxXx2RlfmSdNcItZdyON+oN372dZxeZ19LxXqSZQM+veNKj1SHwc3FQdHQGoVlAGDx9MpBeDpCSoI63piDq5E0lCAMNaNE4eAWzOxhSUnJhA+mTzNUXrSOp4nSAe2Xv60Ykb0SSyMc5gJRmYrGGDZ3Waa82u4TYeKeD62h0LaanXqUm3yf6RKHXy4; + cookiesession1=678A3E1FA39D633645FB96C5FCDC7B5B + method: GET + uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=AWCDNA156MNFRBNY + response: + body: + string: !!binary | + H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy1TUw0TUwVtJByKbmpaDLFacWZaYWFytZ + RVcrZYJkHcOdXfwcDU3NfP3cgpz8IpH1k2x6SWZJTqqSlZJzaVFRal6JgmNZalFieqqCa25BTn5l + aqpCeH5Rdnlqara1QkBqUTJISVBqQX5RSWZeuoJLanJRamJxarFCWn6Rgl9quUJkflG2ko5SflJx + alFZYklmfh6Shw0MdQ3MdQ0M0RQg+9kYIp1WlFpYmpqXXKlkpeSbn1eSkVOppKMEF40vzsgHB6Kv + ko5SaV5mSbGSlRLUeTARuBpVJR2l4tTE4vy8xJz4xJSs0uKS3NQ8UBT45ZcoBENlcioVHMFyqSnY + 1cPN8wt2VNJRykksLokvLUhJLEkFxQkkNo11Dc0VDMytjM2sDIx1DUyVdJQK8gtKcxKLMksqlawM + dJTy8ktSQY4lGNwKReBQLlYoyUhVSM5IzEtPVcjMU0iERk8qLHrKodGjkF+WWgRWXFCUWpaZX1qs + kAsKOHDMgMwoLkksSVXIT4NHk56CW36RQm5+EcjgtPyiXHB0KRSlpicWpYBiF6TLNbcgsyhVIRis + 2TcxrzQtMbmktAgkHVxaVJZaqVCUmgNKAgppRfm5YPvdUlNSixJzFIJSQWkgVcEpMS8b2V6Fsszi + zBIrhYySkgKrGP0Y/fLycr281PLK/KLstNQUvfyi9Bj9YrDhMfqpYPthNEQ0HuRVwMoyU8v1Mkpy + c/SUamNrAdDMtzRgAwAA + headers: + Alt-Svc: + - h3=":443"; ma=93600 + Cache-Control: + - max-age=0, no-cache + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Length: + - '585' + Content-Type: + - application/json; charset=UTF-8 + Date: + - Wed, 09 Apr 2025 17:20:43 GMT + Expires: + - Wed, 09 Apr 2025 17:20:43 GMT + Last-Modified: + - Mon, 17 Mar 2025 12:36:03 GMT + Pragma: + - no-cache + Server: + - Apache + Set-Cookie: + - bm_sv=0337F977C4E1FE251A8B3CBFBE355DD6~YAAQyjfLF6FXXg+WAQAA8IKRGxvaOISigldE4Upb4e5eq5VrHBncSqC5o3hlFfCuQ4Bf3iJi+lNAcS2A4qzQ28fp3doa95TW4oySpwwuvlN1FVYwOrrM2sroSBBEYq3+RYJsqdHhtDh8O5kdgMMMBIHp4pAh5P4ikiAw/get9tOKFuqU5mmv6jiyPmwP8vIU84lIEga1EifKnObL6NZwegzGOTkZmgdMxIx3JmGe4Wn6anIrfDnnrRE5sxscZRtRgtPiGQ==~1; + Domain=.stlouisfed.org; Path=/; Expires=Wed, 09 Apr 2025 19:20:43 GMT; Max-Age=7200; + Secure + Strict-Transport-Security: + - max-age=86400 + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/openbb_platform/providers/fred/tests/test_fred_fetchers.py b/openbb_platform/providers/fred/tests/test_fred_fetchers.py index 9c51d4917fa..3d06bee4fac 100644 --- a/openbb_platform/providers/fred/tests/test_fred_fetchers.py +++ b/openbb_platform/providers/fred/tests/test_fred_fetchers.py @@ -23,6 +23,9 @@ from openbb_fred.models.high_quality_market import ( ) from openbb_fred.models.ice_bofa import FREDICEBofAFetcher from openbb_fred.models.iorb_rates import FREDIORBFetcher +from openbb_fred.models.manufacturing_outlook_ny import ( + FredManufacturingOutlookNYFetcher, +) from openbb_fred.models.manufacturing_outlook_texas import ( FredManufacturingOutlookTexasFetcher, ) @@ -540,3 +543,17 @@ def test_fred_commodity_spot_prices_fetcher(credentials=test_credentials): fetcher = FredCommoditySpotPricesFetcher() result = fetcher.test(params, credentials) assert result is None + + +@pytest.mark.record_http +def test_fred_manufacturing_outlook_ny_fetcher(credentials=test_credentials): + """Test FRED manufacturing outlook NY fetcher.""" + params = { + "start_date": datetime.date(2024, 6, 30), + "end_date": datetime.date(2024, 10, 1), + "topic": "hours_worked", + } + + fetcher = FredManufacturingOutlookNYFetcher() + result = fetcher.test(params, credentials) + assert result is None