CatPtain's picture
Upload 37 files
203c118 verified
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
import datetime
from typing import Literal, Optional, Union
from warnings import simplefilter, warn
from openbb_core.app.deprecation import OpenBBDeprecationWarning
from openbb_core.app.model.field import OpenBBField
from openbb_core.app.model.obbject import OBBject
from openbb_core.app.static.container import Container
from openbb_core.app.static.utils.decorators import exception_handler, validate
from openbb_core.app.static.utils.filters import filter_inputs
from typing_extensions import Annotated, deprecated
class ROUTER_economy(Container):
"""/economy
available_indicators
balance_of_payments
calendar
central_bank_holdings
composite_leading_indicator
country_profile
cpi
direction_of_trade
export_destinations
fomc_documents
fred_regional
fred_release_table
fred_search
fred_series
/gdp
house_price_index
immediate_interest_rate
indicators
interest_rates
long_term_interest_rate
money_measures
pce
port_volume
primary_dealer_fails
primary_dealer_positioning
retail_prices
risk_premium
share_price_index
short_term_interest_rate
/survey
unemployment
"""
def __repr__(self) -> str:
return self.__doc__ or ""
@exception_handler
@validate
def available_indicators(
self,
provider: Annotated[
Optional[Literal["econdb", "imf"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb, imf."
),
] = None,
**kwargs
) -> OBBject:
"""Get the available economic indicators for a provider.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb, imf.
use_cache : bool
Whether to use cache or not, by default is True The cache of indicator symbols will persist for one week. (provider: econdb)
query : Optional[str]
The query string to search through the available indicators. Use semicolons to separate multiple terms. Multiple comma separated items allowed. (provider: imf)
Returns
-------
OBBject
results : list[AvailableIndicators]
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.
AvailableIndicators
-------------------
symbol_root : Optional[str]
The root symbol representing the indicator.
symbol : Optional[str]
Symbol representing the entity requested in the data. The root symbol with additional codes.
country : Optional[str]
The name of the country, region, or entity represented by the symbol.
iso : Optional[str]
The ISO code of the country, region, or entity represented by the symbol.
description : Optional[str]
The description of the indicator.
frequency : Optional[str]
The frequency of the indicator data.
currency : Optional[str]
The currency, or unit, the data is based in. (provider: econdb)
scale : Optional[str]
The scale of the data. (provider: econdb)
multiplier : Optional[int]
The multiplier of the data to arrive at whole units. (provider: econdb)
transformation : Optional[str]
Transformation type. (provider: econdb)
source : Optional[str]
The original source of the data. (provider: econdb)
first_date : Optional[date]
The first date of the data. (provider: econdb)
last_date : Optional[date]
The last date of the data. (provider: econdb)
last_insert_timestamp : Optional[datetime]
The time of the last update. Data is typically reported with a lag. (provider: econdb)
dataset : Optional[str]
The IMF dataset associated with the symbol. (provider: imf)
table : Optional[str]
The name of the table associated with the symbol. (provider: imf)
level : Optional[int]
The indentation level of the data, relative to the table and symbol_root (provider: imf)
order : Optional[Union[int, float]]
Order of the data, relative to the table. (provider: imf)
children : Optional[str]
The symbol of the child data, if any. (provider: imf)
unit : Optional[str]
The unit of the data. (provider: imf)
Examples
--------
>>> from openbb import obb
>>> obb.economy.available_indicators(provider='econdb')
""" # noqa: E501
return self._run(
"/economy/available_indicators",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.available_indicators",
("econdb", "imf"),
)
},
standard_params={},
extra_params=kwargs,
info={
"query": {"imf": {"multiple_items_allowed": True, "choices": None}}
},
)
)
@exception_handler
@validate
def balance_of_payments(
self,
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:
"""Balance of Payments Reports.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
country : Literal['argentina', 'australia', 'austria', 'belgium', 'brazil', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'czechia', 'denmark', 'estonia', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'poland', 'portugal', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states', 'g7', 'g20']
The country to get data. Enter as a 3-letter ISO country code, default is USA. (provider: fred)
start_date : Optional[date]
Start date of the data, in YYYY-MM-DD format. (provider: fred)
end_date : Optional[date]
End date of the data, in YYYY-MM-DD format. (provider: fred)
Returns
-------
OBBject
results : list[BalanceOfPayments]
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.
BalanceOfPayments
-----------------
period : Optional[date]
The date representing the beginning of the reporting period.
balance_percent_of_gdp : Optional[float]
Current Account Balance as Percent of GDP
balance_total : Optional[float]
Current Account Total Balance (USD)
balance_total_services : Optional[float]
Current Account Total Services Balance (USD)
balance_total_secondary_income : Optional[float]
Current Account Total Secondary Income Balance (USD)
balance_total_goods : Optional[float]
Current Account Total Goods Balance (USD)
balance_total_primary_income : Optional[float]
Current Account Total Primary Income Balance (USD)
credits_services_percent_of_goods_and_services : Optional[float]
Current Account Credits Services as Percent of Goods and Services
credits_services_percent_of_current_account : Optional[float]
Current Account Credits Services as Percent of Current Account
credits_total_services : Optional[float]
Current Account Credits Total Services (USD)
credits_total_goods : Optional[float]
Current Account Credits Total Goods (USD)
credits_total_primary_income : Optional[float]
Current Account Credits Total Primary Income (USD)
credits_total_secondary_income : Optional[float]
Current Account Credits Total Secondary Income (USD)
credits_total : Optional[float]
Current Account Credits Total (USD)
debits_services_percent_of_goods_and_services : Optional[float]
Current Account Debits Services as Percent of Goods and Services
debits_services_percent_of_current_account : Optional[float]
Current Account Debits Services as Percent of Current Account
debits_total_services : Optional[float]
Current Account Debits Total Services (USD)
debits_total_goods : Optional[float]
Current Account Debits Total Goods (USD)
debits_total_primary_income : Optional[float]
Current Account Debits Total Primary Income (USD)
debits_total : Optional[float]
Current Account Debits Total (USD)
debits_total_secondary_income : Optional[float]
Current Account Debits Total Secondary Income (USD)
Examples
--------
>>> from openbb import obb
>>> obb.economy.balance_of_payments(provider='fred')
>>> obb.economy.balance_of_payments(provider='fred', country='brazil')
""" # noqa: E501
return self._run(
"/economy/balance_of_payments",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.balance_of_payments",
("fred",),
)
},
standard_params={},
extra_params=kwargs,
info={
"country": {
"fred": {
"multiple_items_allowed": False,
"choices": [
"argentina",
"australia",
"austria",
"belgium",
"brazil",
"canada",
"chile",
"china",
"colombia",
"costa_rica",
"czechia",
"denmark",
"estonia",
"finland",
"france",
"germany",
"greece",
"hungary",
"iceland",
"india",
"indonesia",
"ireland",
"israel",
"italy",
"japan",
"korea",
"latvia",
"lithuania",
"luxembourg",
"mexico",
"netherlands",
"new_zealand",
"norway",
"poland",
"portugal",
"russia",
"saudi_arabia",
"slovak_republic",
"slovenia",
"south_africa",
"spain",
"sweden",
"switzerland",
"turkey",
"united_kingdom",
"united_states",
"g7",
"g20",
],
}
}
},
)
)
@exception_handler
@validate
def calendar(
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["fmp", "tradingeconomics"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fmp, tradingeconomics."
),
] = None,
**kwargs
) -> OBBject:
"""Get the upcoming, or historical, economic calendar of global events.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fmp, tradingeconomics.
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.
country : Optional[str]
Country of the event. Multiple comma separated items allowed. (provider: tradingeconomics)
importance : Optional[Literal['low', 'medium', 'high']]
Importance of the event. (provider: tradingeconomics)
group : Optional[Literal['interest_rate', 'inflation', 'bonds', 'consumer', 'gdp', 'government', 'housing', 'labour', 'markets', 'money', 'prices', 'trade', 'business']]
Grouping of events. (provider: tradingeconomics)
calendar_id : Union[None, int, str]
Get events by TradingEconomics Calendar ID. Multiple comma separated items allowed. (provider: tradingeconomics)
Returns
-------
OBBject
results : list[EconomicCalendar]
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.
EconomicCalendar
----------------
date : Optional[datetime]
The date of the data.
country : Optional[str]
Country of event.
category : Optional[str]
Category of event.
event : Optional[str]
Event name.
importance : Optional[str]
The importance level for the event.
source : Optional[str]
Source of the data.
currency : Optional[str]
Currency of the data.
unit : Optional[str]
Unit of the data.
consensus : Optional[Union[str, float]]
Average forecast among a representative group of economists.
previous : Optional[Union[str, float]]
Value for the previous period after the revision (if revision is applicable).
revised : Optional[Union[str, float]]
Revised previous value, if applicable.
actual : Optional[Union[str, float]]
Latest released value.
change : Optional[float]
Value change since previous. (provider: fmp)
change_percent : Optional[float]
Percentage change since previous. (provider: fmp)
last_updated : Optional[datetime]
Last updated timestamp. (provider: fmp);
Last update of the data. (provider: tradingeconomics)
created_at : Optional[datetime]
Created at timestamp. (provider: fmp)
forecast : Optional[Union[str, float]]
TradingEconomics projections. (provider: tradingeconomics)
reference : Optional[str]
Abbreviated period for which released data refers to. (provider: tradingeconomics)
reference_date : Optional[date]
Date for the reference period. (provider: tradingeconomics)
calendar_id : Optional[int]
TradingEconomics Calendar ID. (provider: tradingeconomics)
date_span : Optional[int]
Date span of the event. (provider: tradingeconomics)
symbol : Optional[str]
TradingEconomics Symbol. (provider: tradingeconomics)
ticker : Optional[str]
TradingEconomics Ticker symbol. (provider: tradingeconomics)
te_url : Optional[str]
TradingEconomics URL path. (provider: tradingeconomics)
source_url : Optional[str]
Source URL. (provider: tradingeconomics)
Examples
--------
>>> from openbb import obb
>>> # By default, the calendar will be forward-looking.
>>> obb.economy.calendar(provider='fmp')
>>> obb.economy.calendar(provider='fmp', start_date='2020-03-01', end_date='2020-03-31')
""" # noqa: E501
return self._run(
"/economy/calendar",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.calendar",
("fmp", "tradingeconomics"),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"tradingeconomics": {
"multiple_items_allowed": True,
"choices": [
"afghanistan",
"albania",
"algeria",
"andorra",
"angola",
"antigua_and_barbuda",
"argentina",
"armenia",
"aruba",
"australia",
"austria",
"azerbaijan",
"bahamas",
"bahrain",
"bangladesh",
"barbados",
"belarus",
"belgium",
"belize",
"benin",
"bermuda",
"bhutan",
"bolivia",
"bosnia_and_herzegovina",
"botswana",
"brazil",
"brunei",
"bulgaria",
"burkina_faso",
"burundi",
"cambodia",
"cameroon",
"canada",
"cape_verde",
"cayman_islands",
"central_african_republic",
"chad",
"chile",
"china",
"colombia",
"comoros",
"congo",
"costa_rica",
"croatia",
"cuba",
"cyprus",
"czech_republic",
"denmark",
"djibouti",
"dominica",
"dominican_republic",
"east_timor",
"ecuador",
"egypt",
"el_salvador",
"equatorial_guinea",
"eritrea",
"estonia",
"ethiopia",
"euro_area",
"faroe_islands",
"fiji",
"finland",
"france",
"gabon",
"gambia",
"georgia",
"germany",
"ghana",
"greece",
"grenada",
"guatemala",
"guinea",
"guinea_bissau",
"guyana",
"haiti",
"honduras",
"hong_kong",
"hungary",
"iceland",
"india",
"indonesia",
"iran",
"iraq",
"ireland",
"isle_of_man",
"israel",
"italy",
"ivory_coast",
"jamaica",
"japan",
"jordan",
"kazakhstan",
"kenya",
"kiribati",
"kosovo",
"kuwait",
"kyrgyzstan",
"laos",
"latvia",
"lebanon",
"lesotho",
"liberia",
"libya",
"liechtenstein",
"lithuania",
"luxembourg",
"macao",
"madagascar",
"malawi",
"malaysia",
"maldives",
"mali",
"malta",
"mauritania",
"mauritius",
"mexico",
"moldova",
"monaco",
"mongolia",
"montenegro",
"morocco",
"mozambique",
"myanmar",
"namibia",
"nepal",
"netherlands",
"new_caledonia",
"new_zealand",
"nicaragua",
"niger",
"nigeria",
"north_korea",
"north_macedonia",
"norway",
"oman",
"pakistan",
"palestine",
"panama",
"papua_new_guinea",
"paraguay",
"peru",
"philippines",
"poland",
"portugal",
"puerto_rico",
"qatar",
"republic_of_the_congo",
"romania",
"russia",
"rwanda",
"samoa",
"sao_tome_and_principe",
"saudi_arabia",
"senegal",
"serbia",
"seychelles",
"sierra_leone",
"singapore",
"slovakia",
"slovenia",
"solomon_islands",
"somalia",
"south_africa",
"south_korea",
"south_sudan",
"spain",
"sri_lanka",
"sudan",
"suriname",
"swaziland",
"sweden",
"switzerland",
"syria",
"taiwan",
"tajikistan",
"tanzania",
"thailand",
"togo",
"tonga",
"trinidad_and_tobago",
"tunisia",
"turkey",
"turkmenistan",
"uganda",
"ukraine",
"united_arab_emirates",
"united_kingdom",
"united_states",
"uruguay",
"uzbekistan",
"vanuatu",
"venezuela",
"vietnam",
"yemen",
"zambia",
"zimbabwe",
],
}
},
"importance": {
"tradingeconomics": {
"multiple_items_allowed": False,
"choices": ["low", "medium", "high"],
}
},
"group": {
"tradingeconomics": {
"multiple_items_allowed": False,
"choices": [
"interest_rate",
"inflation",
"bonds",
"consumer",
"gdp",
"government",
"housing",
"labour",
"markets",
"money",
"prices",
"trade",
"business",
],
}
},
"calendar_id": {
"tradingeconomics": {
"multiple_items_allowed": True,
"choices": None,
}
},
},
)
)
@exception_handler
@validate
def central_bank_holdings(
self,
date: Annotated[
Union[datetime.date, None, str],
OpenBBField(description="A specific date to get data for."),
] = None,
provider: Annotated[
Optional[Literal["federal_reserve"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve."
),
] = None,
**kwargs
) -> OBBject:
"""Get the balance sheet holdings of a central bank.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve.
date : Union[date, None, str]
A specific date to get data for.
holding_type : Literal['all_agency', 'agency_debts', 'mbs', 'cmbs', 'all_treasury', 'bills', 'notesbonds', 'frn', 'tips']
Type of holdings to return. (provider: federal_reserve)
summary : bool
If True, returns historical weekly summary by holding type. This parameter takes priority over other parameters. (provider: federal_reserve)
cusip : Optional[str]
Multiple comma separated items allowed.
wam : bool
If True, returns weighted average maturity aggregated by agency or treasury securities. This parameter takes priority over `holding_type`, `cusip`, and `monthly`. (provider: federal_reserve)
monthly : bool
If True, returns historical data for all Treasury securities at a monthly interval. This parameter takes priority over other parameters, except `wam`. Only valid when `holding_type` is set to: 'all_treasury', 'bills', 'notesbonds', 'frn', 'tips'. (provider: federal_reserve)
Returns
-------
OBBject
results : list[CentralBankHoldings]
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.
CentralBankHoldings
-------------------
date : date
The date of the data.
security_type : Optional[str]
Type of security - i.e. TIPs, FRNs, etc. (provider: federal_reserve)
description : Optional[str]
Description of the security. Only returned for Agency securities. (provider: federal_reserve)
is_aggreated : Optional[Literal['Y']]
Whether the security is aggregated. Only returned for Agency securities. (provider: federal_reserve)
cusip : Optional[str]
issuer : Optional[str]
Issuer of the security. (provider: federal_reserve)
maturity_date : Optional[date]
Maturity date of the security. (provider: federal_reserve)
term : Optional[str]
Term of the security. Only returned for Agency securities. (provider: federal_reserve)
face_value : Optional[float]
Current face value of the security (Thousands of $USD). Current face value of the securities, which is the remaining principal balance of the securities. (provider: federal_reserve)
par_value : Optional[float]
Par value of the security (Thousands of $USD). Changes in par may reflect primary and secondary market transactions and/or custodial account activity. (provider: federal_reserve)
coupon : Optional[float]
Coupon rate of the security. (provider: federal_reserve)
spread : Optional[float]
Spread to the current reference rate, as determined at each security's initial auction. (provider: federal_reserve)
percent_outstanding : Optional[float]
Total percent of the outstanding CUSIP issuance. (provider: federal_reserve)
bills : Optional[float]
Treasury bills amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
frn : Optional[float]
Floating rate Treasury notes amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
notes_and_bonds : Optional[float]
Treasuy Notes and bonds amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
tips : Optional[float]
Treasury inflation-protected securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
mbs : Optional[float]
Mortgage-backed securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
cmbs : Optional[float]
Commercial mortgage-backed securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
agencies : Optional[float]
Agency securities amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
total : Optional[float]
Total SOMA holdings amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
tips_inflation_compensation : Optional[float]
Treasury inflation-protected securities inflation compensation amount (Thousands of $USD). Only returned when 'summary' is True. (provider: federal_reserve)
change_prior_week : Optional[float]
Change in SOMA holdings from the prior week (Thousands of $USD). (provider: federal_reserve)
change_prior_year : Optional[float]
Change in SOMA holdings from the prior year (Thousands of $USD). (provider: federal_reserve)
Examples
--------
>>> from openbb import obb
>>> # The default is the latest Treasury securities held by the Federal Reserve.
>>> obb.economy.central_bank_holdings(provider='federal_reserve')
>>> # Get historical summaries of the Fed's holdings.
>>> obb.economy.central_bank_holdings(provider='federal_reserve', summary=True)
>>> # Get the balance sheet holdings as-of a historical date.
>>> obb.economy.central_bank_holdings(provider='federal_reserve', date='2019-05-21')
>>> # Use the `holding_type` parameter to select Agency securities, or specific categories or Treasury securities.
>>> obb.economy.central_bank_holdings(provider='federal_reserve', holding_type='agency_debts')
""" # noqa: E501
return self._run(
"/economy/central_bank_holdings",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.central_bank_holdings",
("federal_reserve",),
)
},
standard_params={
"date": date,
},
extra_params=kwargs,
info={
"cusip": {
"federal_reserve": {
"multiple_items_allowed": True,
"choices": None,
}
}
},
)
)
@exception_handler
@validate
def composite_leading_indicator(
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get the composite leading indicator (CLI).
It is designed to provide early signals of turning points
in business cycles showing fluctuation of the economic activity around its long term potential level.
CLIs show short-term economic movements in qualitative rather than quantitative terms.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
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.
country : Union[Literal['g20', 'g7', 'asia5', 'north_america', 'europe4', 'australia', 'brazil', 'canada', 'china', 'france', 'germany', 'india', 'indonesia', 'italy', 'japan', 'mexico', 'south_africa', 'south_korea', 'spain', 'turkey', 'united_kingdom', 'united_states', 'all'], str]
Country to get the CLI for, default is G20. Multiple comma separated items allowed. (provider: oecd)
adjustment : Literal['amplitude', 'normalized']
Adjustment of the data, either 'amplitude' or 'normalized'. Default is amplitude. (provider: oecd)
growth_rate : bool
Return the 1-year growth rate (%) of the CLI, default is False. (provider: oecd)
Returns
-------
OBBject
results : list[CompositeLeadingIndicator]
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.
CompositeLeadingIndicator
-------------------------
date : date
The date of the data.
value : Optional[float]
CLI value
country : str
Country for the CLI value.
Examples
--------
>>> from openbb import obb
>>> obb.economy.composite_leading_indicator(provider='oecd')
>>> obb.economy.composite_leading_indicator(country='all', provider='oecd', growth_rate=True)
""" # noqa: E501
return self._run(
"/economy/composite_leading_indicator",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.composite_leading_indicator",
("oecd",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"oecd": {
"multiple_items_allowed": True,
"choices": [
"g20",
"g7",
"asia5",
"north_america",
"europe4",
"australia",
"brazil",
"canada",
"china",
"france",
"germany",
"india",
"indonesia",
"italy",
"japan",
"mexico",
"spain",
"south_africa",
"south_korea",
"turkey",
"united_states",
"united_kingdom",
"all",
],
}
}
},
)
)
@exception_handler
@validate
def country_profile(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): econdb."
),
],
provider: Annotated[
Optional[Literal["econdb"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb."
),
] = None,
**kwargs
) -> OBBject:
"""Get a profile of country statistics and economic indicators.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): econdb.
latest : bool
If True, return only the latest data. If False, return all available data for each indicator. (provider: econdb)
use_cache : bool
If True, the request will be cached for one day.Using cache is recommended to avoid needlessly requesting the same data. (provider: econdb)
Returns
-------
OBBject
results : list[CountryProfile]
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.
CountryProfile
--------------
country : str
population : Optional[int]
Population.
gdp_usd : Optional[float]
Gross Domestic Product, in billions of USD.
gdp_qoq : Optional[float]
GDP growth quarter-over-quarter change, as a normalized percent.
gdp_yoy : Optional[float]
GDP growth year-over-year change, as a normalized percent.
cpi_yoy : Optional[float]
Consumer Price Index year-over-year change, as a normalized percent.
core_yoy : Optional[float]
Core Consumer Price Index year-over-year change, as a normalized percent.
retail_sales_yoy : Optional[float]
Retail Sales year-over-year change, as a normalized percent.
industrial_production_yoy : Optional[float]
Industrial Production year-over-year change, as a normalized percent.
policy_rate : Optional[float]
Short term policy rate, as a normalized percent.
yield_10y : Optional[float]
10-year government bond yield, as a normalized percent.
govt_debt_gdp : Optional[float]
Government debt as a percent (normalized) of GDP.
current_account_gdp : Optional[float]
Current account balance as a percent (normalized) of GDP.
jobless_rate : Optional[float]
Unemployment rate, as a normalized percent.
Examples
--------
>>> from openbb import obb
>>> obb.economy.country_profile(provider='econdb', country='united_kingdom')
>>> # Enter the country as the full name, or iso code. If `latest` is False, the complete history for each series is returned.
>>> obb.economy.country_profile(country='united_states,jp', latest=False, provider='econdb')
""" # noqa: E501
return self._run(
"/economy/country_profile",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.country_profile",
("econdb",),
)
},
standard_params={
"country": country,
},
extra_params=kwargs,
info={
"country": {
"econdb": {"multiple_items_allowed": True, "choices": None}
}
},
)
)
@exception_handler
@validate
def cpi(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): fred, oecd.\nChoices for fred: 'australia', 'austria', 'belgium', 'brazil', 'bulgaria', 'canada', 'chile', 'china', 'croatia', 'cyprus', 'czech_republic', 'denmark', 'estonia', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'malta', 'mexico', 'netherlands', 'new_zealand', 'norway', 'poland', 'portugal', 'romania', 'russian_federation', 'slovak_republic', 'slovakia', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states'\nChoices for oecd: 'G20', 'G7', 'argentina', 'australia', 'austria', 'belgium', 'brazil', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'czech_republic', 'denmark', 'estonia', 'euro_area_20', 'europe', 'european_union_27', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd_total', 'poland', 'portugal', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states', 'all'"
),
] = "united_states",
transform: Annotated[
Literal["index", "yoy", "period"],
OpenBBField(
description="Transformation of the CPI data. Period represents the change since previous. Defaults to change from one year ago (yoy)."
),
] = "yoy",
frequency: Annotated[
Literal["annual", "quarter", "monthly"],
OpenBBField(description="The frequency of the data."),
] = "monthly",
harmonized: Annotated[
bool, OpenBBField(description="If true, returns harmonized data.")
] = False,
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", "oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred, oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get Consumer Price Index (CPI).
Returns either the rescaled index value, or a rate of change (inflation).
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred, oecd.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): fred, oecd.
Choices for fred: 'australia', 'austria', 'belgium', 'brazil', 'bulgaria', 'canada', 'chile', 'china', 'croatia', 'cyprus', 'czech_republic', 'denmark', 'estonia', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'malta', 'mexico', 'netherlands', 'new_zealand', 'norway', 'poland', 'portugal', 'romania', 'russian_federation', 'slovak_republic', 'slovakia', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states'
Choices for oecd: 'G20', 'G7', 'argentina', 'australia', 'austria', 'belgium', 'brazil', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'czech_republic', 'denmark', 'estonia', 'euro_area_20', 'europe', 'european_union_27', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd_total', 'poland', 'portugal', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states', 'all'
transform : Literal['index', 'yoy', 'period']
Transformation of the CPI data. Period represents the change since previous. Defaults to change from one year ago (yoy).
frequency : Literal['annual', 'quarter', 'monthly']
The frequency of the data.
harmonized : bool
If true, returns harmonized data.
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.
expenditure : Literal['total', 'all', 'actual_rentals', 'alcoholic_beverages_tobacco_narcotics', 'all_non_food_non_energy', 'clothing_footwear', 'communication', 'education', 'electricity_gas_other_fuels', 'energy', 'overall_excl_energy_food_alcohol_tobacco', 'food_non_alcoholic_beverages', 'fuels_lubricants_personal', 'furniture_household_equipment', 'goods', 'housing', 'housing_excluding_rentals', 'housing_water_electricity_gas', 'health', 'imputed_rentals', 'maintenance_repair_dwelling', 'miscellaneous_goods_services', 'recreation_culture', 'residuals', 'restaurants_hotels', 'services_less_housing', 'services_less_house_excl_rentals', 'services', 'transport', 'water_supply_other_services']
Expenditure component of CPI. (provider: oecd)
Returns
-------
OBBject
results : list[ConsumerPriceIndex]
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.
ConsumerPriceIndex
------------------
date : date
The date of the data.
country : str
None
value : float
CPI index value or period change.
expenditure : Optional[str]
Expenditure component of CPI. (provider: oecd)
Examples
--------
>>> from openbb import obb
>>> obb.economy.cpi(country='japan,china,turkey', provider='fred')
>>> # Use the `transform` parameter to define the reference period for the change in values. Default is YoY.
>>> obb.economy.cpi(country='united_states,united_kingdom', transform='period', provider='oecd')
""" # noqa: E501
return self._run(
"/economy/cpi",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.cpi",
("fred", "oecd"),
)
},
standard_params={
"country": country,
"transform": transform,
"frequency": frequency,
"harmonized": harmonized,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"fred": {
"multiple_items_allowed": True,
"choices": [
"australia",
"austria",
"belgium",
"brazil",
"bulgaria",
"canada",
"chile",
"china",
"croatia",
"cyprus",
"czech_republic",
"denmark",
"estonia",
"finland",
"france",
"germany",
"greece",
"hungary",
"iceland",
"india",
"indonesia",
"ireland",
"israel",
"italy",
"japan",
"korea",
"latvia",
"lithuania",
"luxembourg",
"malta",
"mexico",
"netherlands",
"new_zealand",
"norway",
"poland",
"portugal",
"romania",
"russian_federation",
"slovak_republic",
"slovakia",
"slovenia",
"south_africa",
"spain",
"sweden",
"switzerland",
"turkey",
"united_kingdom",
"united_states",
],
},
"oecd": {
"multiple_items_allowed": True,
"choices": [
"G20",
"G7",
"argentina",
"australia",
"austria",
"belgium",
"brazil",
"canada",
"chile",
"china",
"colombia",
"costa_rica",
"czech_republic",
"denmark",
"estonia",
"euro_area_20",
"europe",
"european_union_27",
"finland",
"france",
"germany",
"greece",
"hungary",
"iceland",
"india",
"indonesia",
"ireland",
"israel",
"italy",
"japan",
"korea",
"latvia",
"lithuania",
"luxembourg",
"mexico",
"netherlands",
"new_zealand",
"norway",
"oecd_total",
"poland",
"portugal",
"russia",
"saudi_arabia",
"slovak_republic",
"slovenia",
"south_africa",
"spain",
"sweden",
"switzerland",
"turkey",
"united_kingdom",
"united_states",
"all",
],
},
}
},
)
)
@exception_handler
@validate
def direction_of_trade(
self,
country: Annotated[
Union[str, None, list[Optional[str]]],
OpenBBField(
description="The country to get data. None is an equiavlent to 'all'. If 'all' is used, the counterpart field cannot be 'all'. Multiple comma separated items allowed for provider(s): imf.\nChoices for imf: 'all', 'advanced_economies', 'afghanistan', 'africa', 'africa_not_allocated', 'albania', 'algeria', 'american_samoa', 'angola', 'anguilla', 'antigua_and_barbuda', 'antilles', 'argentina', 'armenia', 'aruba', 'asia_not_allocated', 'australia', 'austria', 'azerbaijan', 'bahamas', 'bahrain', 'bangladesh', 'barbados', 'belarus', 'belgium', 'belgo-luxembourg_economic_union', 'belize', 'benin', 'bermuda', 'bhutan', 'bolivia', 'bosnia_and_herzegovina', 'botswana', 'brazil', 'brunei_darussalam', 'bulgaria', 'burkina_faso', 'burundi', 'cabo_verde', 'cambodia', 'cameroon', 'canada', 'central_african_republic', 'chad', 'chile', 'china', 'colombia', 'community_of_independent_states', 'comoros', 'congo', 'costa_rica', 'croatia', 'cuba', 'curacao', 'cyprus', 'czech_republic', 'democratic_republic_of_the_congo', 'denmark', 'developing_asia', 'djibouti', 'dominica', 'dominican_republic', 'east_germany', 'eastern_caribbean_currency_union', 'ecuador', 'egypt', 'el_salvador', 'emerging_and_developing_countries', 'emerging_and_developing_europe', 'equatorial_guinea', 'eritrea', 'estonia', 'eswatini', 'ethiopia', 'euro_area', 'europe', 'europe_not_allocated', 'european_union', 'export_earnings_fuel', 'export_earnings_nonfuel', 'falkland_islands', 'faroe_islands', 'fiji', 'finland', 'former_czechoslovakia', 'former_ussr', 'former_yugoslavia', 'france', 'french_polynesia', 'gabon', 'gambia', 'georgia', 'germany', 'ghana', 'gibraltar', 'greece', 'greenland', 'grenada', 'guam', 'guatemala', 'guinea', 'guyana', 'haiti', 'honduras', 'hong_kong', 'hungary', 'iceland', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'ivory_coast', 'jamaica', 'japan', 'jordan', 'kazakhstan', 'kenya', 'kiribati', 'kosovo', 'kuwait', 'kyrgyzstan', 'lao', 'latvia', 'lebanon', 'lesotho', 'liberia', 'libya', 'lithuania', 'luxembourg', 'macao', 'madagascar', 'malawi', 'malaysia', 'maldives', 'mali', 'malta', 'marshall_islands', 'mauritania', 'mauritius', 'mexico', 'micronesia', 'middle_east', 'middle_east_and_central_asia', 'middle_east_and_central_asia_not_specified', 'middle_east_north_africa_afghanistan_and_pakistan', 'moldova', 'mongolia', 'montenegro', 'montserrat', 'morocco', 'mozambique', 'myanmar', 'namibia', 'nauru', 'nepal', 'netherlands', 'new_caledonia', 'new_zealand', 'nicaragua', 'niger', 'nigeria', 'north_korea', 'north_macedonia', 'north_vietnam', 'norway', 'oman', 'other_countries_nie', 'pakistan', 'palau', 'palestine', 'panama', 'papua_new_guinea', 'paraguay', 'peru', 'philippines', 'poland', 'portugal', 'qatar', 'romania', 'russia', 'rwanda', 'saint_kitts_and_nevis', 'saint_lucia', 'saint_vincent_and_the_grenadines', 'samoa', 'san_marino', 'sao_tome_and_principe', 'saudi_arabia', 'senegal', 'serbia', 'serbia_and_montenegro', 'seychelles', 'sierra_leone', 'singapore', 'sint_maarten', 'slovakia', 'slovenia', 'solomon_islands', 'somalia', 'south_africa', 'south_african_common_customs_area', 'south_korea', 'south_sudan', 'spain', 'special_categories_and_economic_zones', 'sri_lanka', 'sub-saharan_africa', 'sudan', 'suriname', 'sweden', 'switzerland', 'syria', 'taiwan', 'tajikistan', 'tanzania', 'thailand', 'timor-leste', 'togo', 'tonga', 'trinidad_and_tobago', 'tunisia', 'turkey', 'turkmenistan', 'tuvalu', 'uganda', 'ukraine', 'united_arab_emirates', 'united_kingdom', 'united_states', 'uruguay', 'uzbekistan', 'vanuatu', 'vatican_city_state', 'venezuela', 'viet_nam', 'west_malaysia', 'western_hemisphere', 'western_hemisphere_not_allocated', 'world', 'yemen', 'yemen_arab_rep', 'yemen_pd_rep', 'zambia', 'zimbabwe'"
),
] = None,
counterpart: Annotated[
Union[str, None, list[Optional[str]]],
OpenBBField(
description="Counterpart country to the trade. None is an equiavlent to 'all'. If 'all' is used, the country field cannot be 'all'. Multiple comma separated items allowed for provider(s): imf.\nChoices for imf: 'all', 'advanced_economies', 'afghanistan', 'africa', 'africa_not_allocated', 'albania', 'algeria', 'american_samoa', 'angola', 'anguilla', 'antigua_and_barbuda', 'antilles', 'argentina', 'armenia', 'aruba', 'asia_not_allocated', 'australia', 'austria', 'azerbaijan', 'bahamas', 'bahrain', 'bangladesh', 'barbados', 'belarus', 'belgium', 'belgo-luxembourg_economic_union', 'belize', 'benin', 'bermuda', 'bhutan', 'bolivia', 'bosnia_and_herzegovina', 'botswana', 'brazil', 'brunei_darussalam', 'bulgaria', 'burkina_faso', 'burundi', 'cabo_verde', 'cambodia', 'cameroon', 'canada', 'central_african_republic', 'chad', 'chile', 'china', 'colombia', 'community_of_independent_states', 'comoros', 'congo', 'costa_rica', 'croatia', 'cuba', 'curacao', 'cyprus', 'czech_republic', 'democratic_republic_of_the_congo', 'denmark', 'developing_asia', 'djibouti', 'dominica', 'dominican_republic', 'east_germany', 'eastern_caribbean_currency_union', 'ecuador', 'egypt', 'el_salvador', 'emerging_and_developing_countries', 'emerging_and_developing_europe', 'equatorial_guinea', 'eritrea', 'estonia', 'eswatini', 'ethiopia', 'euro_area', 'europe', 'europe_not_allocated', 'european_union', 'export_earnings_fuel', 'export_earnings_nonfuel', 'falkland_islands', 'faroe_islands', 'fiji', 'finland', 'former_czechoslovakia', 'former_ussr', 'former_yugoslavia', 'france', 'french_polynesia', 'gabon', 'gambia', 'georgia', 'germany', 'ghana', 'gibraltar', 'greece', 'greenland', 'grenada', 'guam', 'guatemala', 'guinea', 'guyana', 'haiti', 'honduras', 'hong_kong', 'hungary', 'iceland', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'ivory_coast', 'jamaica', 'japan', 'jordan', 'kazakhstan', 'kenya', 'kiribati', 'kosovo', 'kuwait', 'kyrgyzstan', 'lao', 'latvia', 'lebanon', 'lesotho', 'liberia', 'libya', 'lithuania', 'luxembourg', 'macao', 'madagascar', 'malawi', 'malaysia', 'maldives', 'mali', 'malta', 'marshall_islands', 'mauritania', 'mauritius', 'mexico', 'micronesia', 'middle_east', 'middle_east_and_central_asia', 'middle_east_and_central_asia_not_specified', 'middle_east_north_africa_afghanistan_and_pakistan', 'moldova', 'mongolia', 'montenegro', 'montserrat', 'morocco', 'mozambique', 'myanmar', 'namibia', 'nauru', 'nepal', 'netherlands', 'new_caledonia', 'new_zealand', 'nicaragua', 'niger', 'nigeria', 'north_korea', 'north_macedonia', 'north_vietnam', 'norway', 'oman', 'other_countries_nie', 'pakistan', 'palau', 'palestine', 'panama', 'papua_new_guinea', 'paraguay', 'peru', 'philippines', 'poland', 'portugal', 'qatar', 'romania', 'russia', 'rwanda', 'saint_kitts_and_nevis', 'saint_lucia', 'saint_vincent_and_the_grenadines', 'samoa', 'san_marino', 'sao_tome_and_principe', 'saudi_arabia', 'senegal', 'serbia', 'serbia_and_montenegro', 'seychelles', 'sierra_leone', 'singapore', 'sint_maarten', 'slovakia', 'slovenia', 'solomon_islands', 'somalia', 'south_africa', 'south_african_common_customs_area', 'south_korea', 'south_sudan', 'spain', 'special_categories_and_economic_zones', 'sri_lanka', 'sub-saharan_africa', 'sudan', 'suriname', 'sweden', 'switzerland', 'syria', 'taiwan', 'tajikistan', 'tanzania', 'thailand', 'timor-leste', 'togo', 'tonga', 'trinidad_and_tobago', 'tunisia', 'turkey', 'turkmenistan', 'tuvalu', 'uganda', 'ukraine', 'united_arab_emirates', 'united_kingdom', 'united_states', 'uruguay', 'uzbekistan', 'vanuatu', 'vatican_city_state', 'venezuela', 'viet_nam', 'west_malaysia', 'western_hemisphere', 'western_hemisphere_not_allocated', 'world', 'yemen', 'yemen_arab_rep', 'yemen_pd_rep', 'zambia', 'zimbabwe'"
),
] = None,
direction: Annotated[
Literal["exports", "imports", "balance", "all"],
OpenBBField(
description="Trade direction. Use 'all' to get all data for this dimension."
),
] = "balance",
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,
frequency: Annotated[
Literal["month", "quarter", "annual"],
OpenBBField(description="The frequency of the data."),
] = "month",
provider: Annotated[
Optional[Literal["imf"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: imf."
),
] = None,
**kwargs
) -> OBBject:
"""Get Direction Of Trade Statistics from the IMF database.
The Direction of Trade Statistics (DOTS) presents the value of merchandise exports and
imports disaggregated according to a country's primary trading partners.
Area and world aggregates are included in the display of trade flows between major areas of the world.
Reported data is supplemented by estimates whenever such data is not available or current.
Imports are reported on a cost, insurance and freight (CIF) basis
and exports are reported on a free on board (FOB) basis.
Time series data includes estimates derived from reports of partner countries
for non-reporting and slow-reporting countries.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: imf.
country : Union[str, None, list[Optional[str]]]
The country to get data. None is an equiavlent to 'all'. If 'all' is used, the counterpart field cannot be 'all'. Multiple comma separated items allowed for provider(s): imf.
Choices for imf: 'all', 'advanced_economies', 'afghanistan', 'africa', 'africa_not_allocated', 'albania', 'algeria', 'american_samoa', 'angola', 'anguilla', 'antigua_and_barbuda', 'antilles', 'argentina', 'armenia', 'aruba', 'asia_not_allocated', 'australia', 'austria', 'azerbaijan', 'bahamas', 'bahrain', 'bangladesh', 'barbados', 'belarus', 'belgium', 'belgo-luxembourg_economic_union', 'belize', 'benin', 'bermuda', 'bhutan', 'bolivia', 'bosnia_and_herzegovina', 'botswana', 'brazil', 'brunei_darussalam', 'bulgaria', 'burkina_faso', 'burundi', 'cabo_verde', 'cambodia', 'cameroon', 'canada', 'central_african_republic', 'chad', 'chile', 'china', 'colombia', 'community_of_independent_states', 'comoros', 'congo', 'costa_rica', 'croatia', 'cuba', 'curacao', 'cyprus', 'czech_republic', 'democratic_republic_of_the_congo', 'denmark', 'developing_asia', 'djibouti', 'dominica', 'dominican_republic', 'east_germany', 'eastern_caribbean_currency_union', 'ecuador', 'egypt', 'el_salvador', 'emerging_and_developing_countries', 'emerging_and_developing_europe', 'equatorial_guinea', 'eritrea', 'estonia', 'eswatini', 'ethiopia', 'euro_area', 'europe', 'europe_not_allocated', 'european_union', 'export_earnings_fuel', 'export_earnings_nonfuel', 'falkland_islands', 'faroe_islands', 'fiji', 'finland', 'former_czechoslovakia', 'former_ussr', 'former_yugoslavia', 'france', 'french_polynesia', 'gabon', 'gambia', 'georgia', 'germany', 'ghana', 'gibraltar', 'greece', 'greenland', 'grenada', 'guam', 'guatemala', 'guinea', 'guyana', 'haiti', 'honduras', 'hong_kong', 'hungary', 'iceland', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'ivory_coast', 'jamaica', 'japan', 'jordan', 'kazakhstan', 'kenya', 'kiribati', 'kosovo', 'kuwait', 'kyrgyzstan', 'lao', 'latvia', 'lebanon', 'lesotho', 'liberia', 'libya', 'lithuania', 'luxembourg', 'macao', 'madagascar', 'malawi', 'malaysia', 'maldives', 'mali', 'malta', 'marshall_islands', 'mauritania', 'mauritius', 'mexico', 'micronesia', 'middle_east', 'middle_east_and_central_asia', 'middle_east_and_central_asia_not_specified', 'middle_east_north_africa_afghanistan_and_pakistan', 'moldova', 'mongolia', 'montenegro', 'montserrat', 'morocco', 'mozambique', 'myanmar', 'namibia', 'nauru', 'nepal', 'netherlands', 'new_caledonia', 'new_zealand', 'nicaragua', 'niger', 'nigeria', 'north_korea', 'north_macedonia', 'north_vietnam', 'norway', 'oman', 'other_countries_nie', 'pakistan', 'palau', 'palestine', 'panama', 'papua_new_guinea', 'paraguay', 'peru', 'philippines', 'poland', 'portugal', 'qatar', 'romania', 'russia', 'rwanda', 'saint_kitts_and_nevis', 'saint_lucia', 'saint_vincent_and_the_grenadines', 'samoa', 'san_marino', 'sao_tome_and_principe', 'saudi_arabia', 'senegal', 'serbia', 'serbia_and_montenegro', 'seychelles', 'sierra_leone', 'singapore', 'sint_maarten', 'slovakia', 'slovenia', 'solomon_islands', 'somalia', 'south_africa', 'south_african_common_customs_area', 'south_korea', 'south_sudan', 'spain', 'special_categories_and_economic_zones', 'sri_lanka', 'sub-saharan_africa', 'sudan', 'suriname', 'sweden', 'switzerland', 'syria', 'taiwan', 'tajikistan', 'tanzania', 'thailand', 'timor-leste', 'togo', 'tonga', 'trinidad_and_tobago', 'tunisia', 'turkey', 'turkmenistan', 'tuvalu', 'uganda', 'ukraine', 'united_arab_emirates', 'united_kingdom', 'united_states', 'uruguay', 'uzbekistan', 'vanuatu', 'vatican_city_state', 'venezuela', 'viet_nam', 'west_malaysia', 'western_hemisphere', 'western_hemisphere_not_allocated', 'world', 'yemen', 'yemen_arab_rep', 'yemen_pd_rep', 'zambia', 'zimbabwe'
counterpart : Union[str, None, list[Optional[str]]]
Counterpart country to the trade. None is an equiavlent to 'all'. If 'all' is used, the country field cannot be 'all'. Multiple comma separated items allowed for provider(s): imf.
Choices for imf: 'all', 'advanced_economies', 'afghanistan', 'africa', 'africa_not_allocated', 'albania', 'algeria', 'american_samoa', 'angola', 'anguilla', 'antigua_and_barbuda', 'antilles', 'argentina', 'armenia', 'aruba', 'asia_not_allocated', 'australia', 'austria', 'azerbaijan', 'bahamas', 'bahrain', 'bangladesh', 'barbados', 'belarus', 'belgium', 'belgo-luxembourg_economic_union', 'belize', 'benin', 'bermuda', 'bhutan', 'bolivia', 'bosnia_and_herzegovina', 'botswana', 'brazil', 'brunei_darussalam', 'bulgaria', 'burkina_faso', 'burundi', 'cabo_verde', 'cambodia', 'cameroon', 'canada', 'central_african_republic', 'chad', 'chile', 'china', 'colombia', 'community_of_independent_states', 'comoros', 'congo', 'costa_rica', 'croatia', 'cuba', 'curacao', 'cyprus', 'czech_republic', 'democratic_republic_of_the_congo', 'denmark', 'developing_asia', 'djibouti', 'dominica', 'dominican_republic', 'east_germany', 'eastern_caribbean_currency_union', 'ecuador', 'egypt', 'el_salvador', 'emerging_and_developing_countries', 'emerging_and_developing_europe', 'equatorial_guinea', 'eritrea', 'estonia', 'eswatini', 'ethiopia', 'euro_area', 'europe', 'europe_not_allocated', 'european_union', 'export_earnings_fuel', 'export_earnings_nonfuel', 'falkland_islands', 'faroe_islands', 'fiji', 'finland', 'former_czechoslovakia', 'former_ussr', 'former_yugoslavia', 'france', 'french_polynesia', 'gabon', 'gambia', 'georgia', 'germany', 'ghana', 'gibraltar', 'greece', 'greenland', 'grenada', 'guam', 'guatemala', 'guinea', 'guyana', 'haiti', 'honduras', 'hong_kong', 'hungary', 'iceland', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'ivory_coast', 'jamaica', 'japan', 'jordan', 'kazakhstan', 'kenya', 'kiribati', 'kosovo', 'kuwait', 'kyrgyzstan', 'lao', 'latvia', 'lebanon', 'lesotho', 'liberia', 'libya', 'lithuania', 'luxembourg', 'macao', 'madagascar', 'malawi', 'malaysia', 'maldives', 'mali', 'malta', 'marshall_islands', 'mauritania', 'mauritius', 'mexico', 'micronesia', 'middle_east', 'middle_east_and_central_asia', 'middle_east_and_central_asia_not_specified', 'middle_east_north_africa_afghanistan_and_pakistan', 'moldova', 'mongolia', 'montenegro', 'montserrat', 'morocco', 'mozambique', 'myanmar', 'namibia', 'nauru', 'nepal', 'netherlands', 'new_caledonia', 'new_zealand', 'nicaragua', 'niger', 'nigeria', 'north_korea', 'north_macedonia', 'north_vietnam', 'norway', 'oman', 'other_countries_nie', 'pakistan', 'palau', 'palestine', 'panama', 'papua_new_guinea', 'paraguay', 'peru', 'philippines', 'poland', 'portugal', 'qatar', 'romania', 'russia', 'rwanda', 'saint_kitts_and_nevis', 'saint_lucia', 'saint_vincent_and_the_grenadines', 'samoa', 'san_marino', 'sao_tome_and_principe', 'saudi_arabia', 'senegal', 'serbia', 'serbia_and_montenegro', 'seychelles', 'sierra_leone', 'singapore', 'sint_maarten', 'slovakia', 'slovenia', 'solomon_islands', 'somalia', 'south_africa', 'south_african_common_customs_area', 'south_korea', 'south_sudan', 'spain', 'special_categories_and_economic_zones', 'sri_lanka', 'sub-saharan_africa', 'sudan', 'suriname', 'sweden', 'switzerland', 'syria', 'taiwan', 'tajikistan', 'tanzania', 'thailand', 'timor-leste', 'togo', 'tonga', 'trinidad_and_tobago', 'tunisia', 'turkey', 'turkmenistan', 'tuvalu', 'uganda', 'ukraine', 'united_arab_emirates', 'united_kingdom', 'united_states', 'uruguay', 'uzbekistan', 'vanuatu', 'vatican_city_state', 'venezuela', 'viet_nam', 'west_malaysia', 'western_hemisphere', 'western_hemisphere_not_allocated', 'world', 'yemen', 'yemen_arab_rep', 'yemen_pd_rep', 'zambia', 'zimbabwe'
direction : Literal['exports', 'imports', 'balance', 'all']
Trade direction. Use 'all' to get all data for this dimension.
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.
frequency : Literal['month', 'quarter', 'annual']
The frequency of the data.
Returns
-------
OBBject
results : list[DirectionOfTrade]
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.
DirectionOfTrade
----------------
date : date
The date of the data.
symbol : Optional[str]
Symbol representing the entity requested in the data.
country : str
counterpart : str
Counterpart country or region to the trade.
title : Optional[str]
Title corresponding to the symbol.
value : float
Trade value.
scale : Optional[str]
Scale of the value.
Examples
--------
>>> from openbb import obb
>>> obb.economy.direction_of_trade(provider='imf', country='all', counterpart='china')
>>> # Select multiple countries or counterparts by entering a comma-separated list. The direction of trade can be 'exports', 'imports', 'balance', or 'all'.
>>> obb.economy.direction_of_trade(provider='imf', country='us', counterpart='world,eu', frequency='annual', direction='exports')
""" # noqa: E501
return self._run(
"/economy/direction_of_trade",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.direction_of_trade",
("imf",),
)
},
standard_params={
"country": country,
"counterpart": counterpart,
"direction": direction,
"start_date": start_date,
"end_date": end_date,
"frequency": frequency,
},
extra_params=kwargs,
info={
"country": {
"imf": {
"multiple_items_allowed": True,
"choices": [
"all",
"advanced_economies",
"afghanistan",
"africa",
"africa_not_allocated",
"albania",
"algeria",
"american_samoa",
"angola",
"anguilla",
"antigua_and_barbuda",
"antilles",
"argentina",
"armenia",
"aruba",
"asia_not_allocated",
"australia",
"austria",
"azerbaijan",
"bahamas",
"bahrain",
"bangladesh",
"barbados",
"belarus",
"belgium",
"belgo-luxembourg_economic_union",
"belize",
"benin",
"bermuda",
"bhutan",
"bolivia",
"bosnia_and_herzegovina",
"botswana",
"brazil",
"brunei_darussalam",
"bulgaria",
"burkina_faso",
"burundi",
"cabo_verde",
"cambodia",
"cameroon",
"canada",
"central_african_republic",
"chad",
"chile",
"china",
"colombia",
"community_of_independent_states",
"comoros",
"congo",
"costa_rica",
"croatia",
"cuba",
"curacao",
"cyprus",
"czech_republic",
"democratic_republic_of_the_congo",
"denmark",
"developing_asia",
"djibouti",
"dominica",
"dominican_republic",
"east_germany",
"eastern_caribbean_currency_union",
"ecuador",
"egypt",
"el_salvador",
"emerging_and_developing_countries",
"emerging_and_developing_europe",
"equatorial_guinea",
"eritrea",
"estonia",
"eswatini",
"ethiopia",
"euro_area",
"europe",
"europe_not_allocated",
"european_union",
"export_earnings_fuel",
"export_earnings_nonfuel",
"falkland_islands",
"faroe_islands",
"fiji",
"finland",
"former_czechoslovakia",
"former_ussr",
"former_yugoslavia",
"france",
"french_polynesia",
"gabon",
"gambia",
"georgia",
"germany",
"ghana",
"gibraltar",
"greece",
"greenland",
"grenada",
"guam",
"guatemala",
"guinea",
"guyana",
"haiti",
"honduras",
"hong_kong",
"hungary",
"iceland",
"india",
"indonesia",
"iran",
"iraq",
"ireland",
"israel",
"italy",
"ivory_coast",
"jamaica",
"japan",
"jordan",
"kazakhstan",
"kenya",
"kiribati",
"kosovo",
"kuwait",
"kyrgyzstan",
"lao",
"latvia",
"lebanon",
"lesotho",
"liberia",
"libya",
"lithuania",
"luxembourg",
"macao",
"madagascar",
"malawi",
"malaysia",
"maldives",
"mali",
"malta",
"marshall_islands",
"mauritania",
"mauritius",
"mexico",
"micronesia",
"middle_east",
"middle_east_and_central_asia",
"middle_east_and_central_asia_not_specified",
"middle_east_north_africa_afghanistan_and_pakistan",
"moldova",
"mongolia",
"montenegro",
"montserrat",
"morocco",
"mozambique",
"myanmar",
"namibia",
"nauru",
"nepal",
"netherlands",
"new_caledonia",
"new_zealand",
"nicaragua",
"niger",
"nigeria",
"north_korea",
"north_macedonia",
"north_vietnam",
"norway",
"oman",
"other_countries_nie",
"pakistan",
"palau",
"palestine",
"panama",
"papua_new_guinea",
"paraguay",
"peru",
"philippines",
"poland",
"portugal",
"qatar",
"romania",
"russia",
"rwanda",
"saint_kitts_and_nevis",
"saint_lucia",
"saint_vincent_and_the_grenadines",
"samoa",
"san_marino",
"sao_tome_and_principe",
"saudi_arabia",
"senegal",
"serbia",
"serbia_and_montenegro",
"seychelles",
"sierra_leone",
"singapore",
"sint_maarten",
"slovakia",
"slovenia",
"solomon_islands",
"somalia",
"south_africa",
"south_african_common_customs_area",
"south_korea",
"south_sudan",
"spain",
"special_categories_and_economic_zones",
"sri_lanka",
"sub-saharan_africa",
"sudan",
"suriname",
"sweden",
"switzerland",
"syria",
"taiwan",
"tajikistan",
"tanzania",
"thailand",
"timor-leste",
"togo",
"tonga",
"trinidad_and_tobago",
"tunisia",
"turkey",
"turkmenistan",
"tuvalu",
"uganda",
"ukraine",
"united_arab_emirates",
"united_kingdom",
"united_states",
"uruguay",
"uzbekistan",
"vanuatu",
"vatican_city_state",
"venezuela",
"viet_nam",
"west_malaysia",
"western_hemisphere",
"western_hemisphere_not_allocated",
"world",
"yemen",
"yemen_arab_rep",
"yemen_pd_rep",
"zambia",
"zimbabwe",
],
}
},
"counterpart": {
"imf": {
"multiple_items_allowed": True,
"choices": [
"all",
"advanced_economies",
"afghanistan",
"africa",
"africa_not_allocated",
"albania",
"algeria",
"american_samoa",
"angola",
"anguilla",
"antigua_and_barbuda",
"antilles",
"argentina",
"armenia",
"aruba",
"asia_not_allocated",
"australia",
"austria",
"azerbaijan",
"bahamas",
"bahrain",
"bangladesh",
"barbados",
"belarus",
"belgium",
"belgo-luxembourg_economic_union",
"belize",
"benin",
"bermuda",
"bhutan",
"bolivia",
"bosnia_and_herzegovina",
"botswana",
"brazil",
"brunei_darussalam",
"bulgaria",
"burkina_faso",
"burundi",
"cabo_verde",
"cambodia",
"cameroon",
"canada",
"central_african_republic",
"chad",
"chile",
"china",
"colombia",
"community_of_independent_states",
"comoros",
"congo",
"costa_rica",
"croatia",
"cuba",
"curacao",
"cyprus",
"czech_republic",
"democratic_republic_of_the_congo",
"denmark",
"developing_asia",
"djibouti",
"dominica",
"dominican_republic",
"east_germany",
"eastern_caribbean_currency_union",
"ecuador",
"egypt",
"el_salvador",
"emerging_and_developing_countries",
"emerging_and_developing_europe",
"equatorial_guinea",
"eritrea",
"estonia",
"eswatini",
"ethiopia",
"euro_area",
"europe",
"europe_not_allocated",
"european_union",
"export_earnings_fuel",
"export_earnings_nonfuel",
"falkland_islands",
"faroe_islands",
"fiji",
"finland",
"former_czechoslovakia",
"former_ussr",
"former_yugoslavia",
"france",
"french_polynesia",
"gabon",
"gambia",
"georgia",
"germany",
"ghana",
"gibraltar",
"greece",
"greenland",
"grenada",
"guam",
"guatemala",
"guinea",
"guyana",
"haiti",
"honduras",
"hong_kong",
"hungary",
"iceland",
"india",
"indonesia",
"iran",
"iraq",
"ireland",
"israel",
"italy",
"ivory_coast",
"jamaica",
"japan",
"jordan",
"kazakhstan",
"kenya",
"kiribati",
"kosovo",
"kuwait",
"kyrgyzstan",
"lao",
"latvia",
"lebanon",
"lesotho",
"liberia",
"libya",
"lithuania",
"luxembourg",
"macao",
"madagascar",
"malawi",
"malaysia",
"maldives",
"mali",
"malta",
"marshall_islands",
"mauritania",
"mauritius",
"mexico",
"micronesia",
"middle_east",
"middle_east_and_central_asia",
"middle_east_and_central_asia_not_specified",
"middle_east_north_africa_afghanistan_and_pakistan",
"moldova",
"mongolia",
"montenegro",
"montserrat",
"morocco",
"mozambique",
"myanmar",
"namibia",
"nauru",
"nepal",
"netherlands",
"new_caledonia",
"new_zealand",
"nicaragua",
"niger",
"nigeria",
"north_korea",
"north_macedonia",
"north_vietnam",
"norway",
"oman",
"other_countries_nie",
"pakistan",
"palau",
"palestine",
"panama",
"papua_new_guinea",
"paraguay",
"peru",
"philippines",
"poland",
"portugal",
"qatar",
"romania",
"russia",
"rwanda",
"saint_kitts_and_nevis",
"saint_lucia",
"saint_vincent_and_the_grenadines",
"samoa",
"san_marino",
"sao_tome_and_principe",
"saudi_arabia",
"senegal",
"serbia",
"serbia_and_montenegro",
"seychelles",
"sierra_leone",
"singapore",
"sint_maarten",
"slovakia",
"slovenia",
"solomon_islands",
"somalia",
"south_africa",
"south_african_common_customs_area",
"south_korea",
"south_sudan",
"spain",
"special_categories_and_economic_zones",
"sri_lanka",
"sub-saharan_africa",
"sudan",
"suriname",
"sweden",
"switzerland",
"syria",
"taiwan",
"tajikistan",
"tanzania",
"thailand",
"timor-leste",
"togo",
"tonga",
"trinidad_and_tobago",
"tunisia",
"turkey",
"turkmenistan",
"tuvalu",
"uganda",
"ukraine",
"united_arab_emirates",
"united_kingdom",
"united_states",
"uruguay",
"uzbekistan",
"vanuatu",
"vatican_city_state",
"venezuela",
"viet_nam",
"west_malaysia",
"western_hemisphere",
"western_hemisphere_not_allocated",
"world",
"yemen",
"yemen_arab_rep",
"yemen_pd_rep",
"zambia",
"zimbabwe",
],
}
},
},
)
)
@exception_handler
@validate
def export_destinations(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): econdb."
),
],
provider: Annotated[
Optional[Literal["econdb"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb."
),
] = None,
**kwargs
) -> OBBject:
"""Get top export destinations by country from the UN Comtrade International Trade Statistics Database.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): econdb.
Returns
-------
OBBject
results : list[ExportDestinations]
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.
ExportDestinations
------------------
origin_country : str
The country of origin.
destination_country : str
The destination country.
value : Union[float, int]
The value of the export.
units : Optional[str]
The units of measurement for the value. (provider: econdb)
title : Optional[str]
The title of the data. (provider: econdb)
footnote : Optional[str]
The footnote for the data. (provider: econdb)
Examples
--------
>>> from openbb import obb
>>> obb.economy.export_destinations(provider='econdb', country='us')
""" # noqa: E501
return self._run(
"/economy/export_destinations",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.export_destinations",
("econdb",),
)
},
standard_params={
"country": country,
},
extra_params=kwargs,
info={
"country": {
"econdb": {"multiple_items_allowed": True, "choices": None}
}
},
)
)
@exception_handler
@validate
def fomc_documents(
self,
provider: Annotated[
Optional[Literal["federal_reserve"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve."
),
] = None,
**kwargs
) -> OBBject:
"""Get FOMC documents by year and document type.
Optionally, download the file directly from the Federal Reserve's website.
Source: https://www.federalreserve.gov/monetarypolicy/fomc_historical.htm
Source: https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm
This function does not return the typical OBBject response.
The response is `list[dict[str, str]]` of FOMC documents and their URLs.
Each dictionary entry has keys: `date`, `url`, `doc_type`, and `doc_format`.
If `as_choices` is True, the response is a list of valid Workspace parameter choices.
Keys, `label` and `value`, correspond with the `doc_type` + `date`, and the `url`, respectively.
If `url` was provided, the response is a `dict[str, Any]` with keys `filename`, `content`, and `data_format`.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve.
year : Optional[int]
The year of FOMC documents to retrieve. If None, all years since 1959 are returned. (provider: federal_reserve)
document_type : Optional[str]
Filter by document type. Default is all. Choose from: all, monetary_policy, minutes, projections, materials, press_release, press_conference, conference_call, agenda, transcript, speaker_key, beige_book, teal_book, green_book, blue_book, red_book (provider: federal_reserve)
pdf_only : bool
Whether to return as a list with only the PDF documents. Default is False. (provider: federal_reserve)
as_choices : bool
Whether to return cast as a list of valid Workspace parameter choices. Leave as False for typical use. (provider: federal_reserve)
url : Optional[str]
Download a document from the supplied URL. When provided, all other parameters are ignored. Content is returned as a base64 encoded string. (provider: federal_reserve)
Returns
-------
OBBject
results : FomcDocuments
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.
FomcDocuments
-------------
content : Optional[Any]
The content of request results. If `url` was provided, the content is a dictionary with keys `filename` and `content`. Otherwise, it is a list of dictionaries with a mapping of FOMC documents to URLs. The endpoint response will not be an OBBject.results object, but the content directly. (provider: federal_reserve)
Examples
--------
>>> from openbb import obb
>>> obb.economy.fomc_documents(provider='federal_reserve')
>>> # Filter all documents by year.
>>> obb.economy.fomc_documents(provider='federal_reserve', year=2022)
>>> # Filter all documents by year and document type.
>>> obb.economy.fomc_documents(provider='federal_reserve', year=2022, document_type='minutes')
>>> # 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.
>>> obb.economy.fomc_documents(provider='federal_reserve', url='https://www.federalreserve.gov/monetarypolicy/files/fomcminutes20220126.pdf')
""" # noqa: E501
return self._run(
"/economy/fomc_documents",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.fomc_documents",
("federal_reserve",),
)
},
standard_params={},
extra_params=kwargs,
info={
"year": {
"federal_reserve": {
"x-widget_config": {
"type": "number",
"value": None,
"options": [
{"label": "All Years", "value": None},
{"label": "2025", "value": 2025},
{"label": "2024", "value": 2024},
{"label": "2023", "value": 2023},
{"label": "2022", "value": 2022},
{"label": "2021", "value": 2021},
{"label": "2020", "value": 2020},
{"label": "2019", "value": 2019},
{"label": "2018", "value": 2018},
{"label": "2017", "value": 2017},
{"label": "2016", "value": 2016},
{"label": "2015", "value": 2015},
{"label": "2014", "value": 2014},
{"label": "2013", "value": 2013},
{"label": "2012", "value": 2012},
{"label": "2011", "value": 2011},
{"label": "2010", "value": 2010},
{"label": "2009", "value": 2009},
{"label": "2008", "value": 2008},
{"label": "2007", "value": 2007},
{"label": "2006", "value": 2006},
{"label": "2005", "value": 2005},
{"label": "2004", "value": 2004},
{"label": "2003", "value": 2003},
{"label": "2002", "value": 2002},
{"label": "2001", "value": 2001},
{"label": "2000", "value": 2000},
{"label": "1999", "value": 1999},
{"label": "1998", "value": 1998},
{"label": "1997", "value": 1997},
{"label": "1996", "value": 1996},
{"label": "1995", "value": 1995},
{"label": "1994", "value": 1994},
{"label": "1993", "value": 1993},
{"label": "1992", "value": 1992},
{"label": "1991", "value": 1991},
{"label": "1990", "value": 1990},
{"label": "1989", "value": 1989},
{"label": "1988", "value": 1988},
{"label": "1987", "value": 1987},
{"label": "1986", "value": 1986},
{"label": "1985", "value": 1985},
{"label": "1984", "value": 1984},
{"label": "1983", "value": 1983},
{"label": "1982", "value": 1982},
{"label": "1981", "value": 1981},
{"label": "1980", "value": 1980},
{"label": "1979", "value": 1979},
{"label": "1978", "value": 1978},
{"label": "1977", "value": 1977},
{"label": "1976", "value": 1976},
{"label": "1975", "value": 1975},
{"label": "1974", "value": 1974},
{"label": "1973", "value": 1973},
{"label": "1972", "value": 1972},
{"label": "1971", "value": 1971},
{"label": "1970", "value": 1970},
{"label": "1969", "value": 1969},
{"label": "1968", "value": 1968},
{"label": "1967", "value": 1967},
{"label": "1966", "value": 1966},
{"label": "1965", "value": 1965},
{"label": "1964", "value": 1964},
{"label": "1963", "value": 1963},
{"label": "1962", "value": 1962},
{"label": "1961", "value": 1961},
{"label": "1960", "value": 1960},
{"label": "1959", "value": 1959},
],
}
}
},
"document_type": {
"federal_reserve": {
"x-widget_config": {
"type": "text",
"value": None,
"options": [
{"label": "All Documents", "value": None},
{
"label": "Monetary Policy",
"value": "monetary_policy",
},
{"label": "Minutes", "value": "minutes"},
{"label": "Projections", "value": "projections"},
{"label": "Materials", "value": "materials"},
{
"label": "Press Release",
"value": "press_release",
},
{
"label": "Press Conference",
"value": "press_conference",
},
{
"label": "Conference Call",
"value": "conference_call",
},
{"label": "Agenda", "value": "agenda"},
{"label": "Transcript", "value": "transcript"},
{"label": "Speaker Key", "value": "speaker_key"},
{"label": "Beige Book", "value": "beige_book"},
{"label": "Teal Book", "value": "teal_book"},
{"label": "Green Book", "value": "green_book"},
{"label": "Blue Book", "value": "blue_book"},
{"label": "Red Book", "value": "red_book"},
],
}
}
},
"pdf_only": {
"federal_reserve": {
"x-widget_config": {
"value": True,
"type": "boolean",
"show": False,
}
}
},
"as_choices": {
"federal_reserve": {
"x-widget_config": {
"value": True,
"type": "boolean",
"show": False,
}
}
},
"url": {
"federal_reserve": {
"x-widget_config": {
"type": "endpoint",
"paramName": "url",
"optionsEndpoint": "api/v1/economy/fomc_documents",
"optionsParams": {
"document_type": "$document_type",
"year": "$year",
"pdf_only": True,
"as_choices": True,
"provider": "federal_reserve",
},
"show": False,
"roles": ["fileSelector"],
}
}
},
},
)
)
@exception_handler
@validate
def fred_regional(
self,
symbol: Annotated[str, OpenBBField(description="Symbol to get data for.")],
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,
limit: Annotated[
Optional[int],
OpenBBField(description="The number of data entries to return."),
] = 100000,
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:
"""Query the Geo Fred API for regional economic data by series group.
The series group ID is found by using `fred_search` and the `series_id` parameter.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
symbol : str
Symbol to get data for.
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.
limit : Optional[int]
The number of data entries to return.
is_series_group : bool
When True, the symbol provided is for a series_group, else it is for a series ID. (provider: fred)
region_type : Optional[Literal['bea', 'msa', 'frb', 'necta', 'state', 'country', 'county', 'censusregion']]
The type of regional data. Parameter is only valid when `is_series_group` is True. (provider: fred)
season : Literal['sa', 'nsa', 'ssa']
The seasonal adjustments to the data. Parameter is only valid when `is_series_group` is True. (provider: fred)
units : Optional[str]
The units of the data. This should match the units returned from searching by series ID. An incorrect field will not necessarily return an error. Parameter is only valid when `is_series_group` is True. (provider: fred)
frequency : Optional[Literal['a', 'q', 'm', 'w', 'd', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
Frequency aggregation to convert high frequency data to lower frequency.
None = No change
a = Annual
q = Quarterly
m = Monthly
w = Weekly
d = Daily
wef = Weekly, Ending Friday
weth = Weekly, Ending Thursday
wew = Weekly, Ending Wednesday
wetu = Weekly, Ending Tuesday
wem = Weekly, Ending Monday
wesu = Weekly, Ending Sunday
wesa = Weekly, Ending Saturday
bwew = Biweekly, Ending Wednesday
bwem = Biweekly, Ending Monday
(provider: fred)
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
A key that indicates the aggregation method used for frequency aggregation.
This parameter has no affect if the frequency parameter is not set.
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[FredRegional]
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.
FredRegional
------------
date : date
The date of the data.
region : Optional[str]
The name of the region. (provider: fred)
code : Optional[Union[int, str]]
The code of the region. (provider: fred)
value : Optional[Union[int, float]]
The obersvation value. The units are defined in the search results by series ID. (provider: fred)
series_id : Optional[str]
The individual series ID for the region. (provider: fred)
Examples
--------
>>> from openbb import obb
>>> obb.economy.fred_regional(symbol='NYICLAIMS', provider='fred')
>>> # With a date, time series data is returned.
>>> obb.economy.fred_regional(symbol='NYICLAIMS', start_date='2021-01-01', end_date='2021-12-31', limit=10, provider='fred')
""" # noqa: E501
return self._run(
"/economy/fred_regional",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.fred_regional",
("fred",),
)
},
standard_params={
"symbol": symbol,
"start_date": start_date,
"end_date": end_date,
"limit": limit,
},
extra_params=kwargs,
)
)
@exception_handler
@validate
def fred_release_table(
self,
release_id: Annotated[
str,
OpenBBField(
description="The ID of the release. Use `fred_search` to find releases."
),
],
element_id: Annotated[
Optional[str],
OpenBBField(
description="The element ID of a specific table in the release."
),
] = None,
date: Annotated[
Union[datetime.date, str, None, list[Union[datetime.date, str, None]]],
OpenBBField(
description="A specific date to get data for. Multiple comma separated items allowed for provider(s): fred."
),
] = 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 economic release data by ID and/or element from FRED.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
release_id : str
The ID of the release. Use `fred_search` to find releases.
element_id : Optional[str]
The element ID of a specific table in the release.
date : Union[date, str, None, list[Union[date, str, None]]]
A specific date to get data for. Multiple comma separated items allowed for provider(s): fred.
Returns
-------
OBBject
results : list[FredReleaseTable]
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.
FredReleaseTable
----------------
date : Optional[date]
The date of the data.
level : Optional[int]
The indentation level of the element.
element_type : Optional[str]
The type of the element.
line : Optional[int]
The line number of the element.
element_id : Optional[str]
The element id in the parent/child relationship.
parent_id : Optional[str]
The parent id in the parent/child relationship.
children : Optional[str]
The element_id of each child, as a comma-separated string.
symbol : Optional[str]
Symbol representing the entity requested in the data.
name : Optional[str]
The name of the series.
value : Optional[float]
The reported value of the series.
Examples
--------
>>> from openbb import obb
>>> # Get the top-level elements of a release by not supplying an element ID.
>>> obb.economy.fred_release_table(release_id='50', provider='fred')
>>> # Drill down on a specific section of the release.
>>> obb.economy.fred_release_table(release_id='50', element_id='4880', provider='fred')
>>> # Drill down on a specific table of the release.
>>> obb.economy.fred_release_table(release_id='50', element_id='4881', provider='fred')
""" # noqa: E501
return self._run(
"/economy/fred_release_table",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.fred_release_table",
("fred",),
)
},
standard_params={
"release_id": release_id,
"element_id": element_id,
"date": date,
},
extra_params=kwargs,
info={
"date": {"fred": {"multiple_items_allowed": True, "choices": None}}
},
)
)
@exception_handler
@validate
def fred_search(
self,
query: Annotated[
Optional[str], OpenBBField(description="The search word(s).")
] = 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:
"""Search for FRED series or economic releases by ID or string.
This does not return the observation values, only the metadata.
Use this function to find series IDs for `fred_series()`.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
query : Optional[str]
The search word(s).
search_type : Literal['full_text', 'series_id', 'release']
The type of search to perform. Automatically set to 'release' when a 'release_id' is provided. (provider: fred)
release_id : Optional[Annotated[int, Ge(ge=0)]]
A specific release ID to target. (provider: fred)
limit : Optional[Annotated[int, Ge(ge=0)]]
The number of data entries to return. (1-1000) (provider: fred)
offset : Optional[Annotated[int, Ge(ge=0)]]
Offset the results in conjunction with limit. This parameter is ignored When search_type is 'release'. (provider: fred)
order_by : Literal['search_rank', 'series_id', 'title', 'units', 'frequency', 'seasonal_adjustment', 'realtime_start', 'realtime_end', 'last_updated', 'observation_start', 'observation_end', 'popularity', 'group_popularity']
Order the results by a specific attribute. The default is 'observation_end'. (provider: fred)
sort_order : Literal['asc', 'desc']
Sort the 'order_by' item in ascending or descending order. The default is 'desc'. (provider: fred)
filter_variable : Optional[Literal['frequency', 'units', 'seasonal_adjustment']]
Filter by an attribute. (provider: fred)
filter_value : Optional[str]
String value to filter the variable by. Used in conjunction with filter_variable. This parameter is ignored when search_type is 'release'. (provider: fred)
tag_names : Optional[str]
A semicolon delimited list of tag names that series match all of. Example: 'japan
exclude_tag_names : Optional[str]
A semicolon delimited list of tag names that series match none of. Example: 'imports
series_id : Optional[str]
A FRED Series ID to return series group information for. This returns the required information to query for regional data. Not all series that are in FRED have geographical data. Entering a value for series_id will override all other parameters. Multiple series_ids can be separated by commas. (provider: fred)
Returns
-------
OBBject
results : list[FredSearch]
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.
FredSearch
----------
release_id : Optional[str]
The release ID for queries.
series_id : Optional[str]
The series ID for the item in the release.
series_group : Optional[str]
The series group ID of the series. This value is used to query for regional data.
region_type : Optional[str]
The region type of the series.
name : Optional[str]
The name of the release.
title : Optional[str]
The title of the series.
observation_start : Optional[date]
The date of the first observation in the series.
observation_end : Optional[date]
The date of the last observation in the series.
frequency : Optional[str]
The frequency of the data.
frequency_short : Optional[str]
Short form of the data frequency.
units : Optional[str]
The units of the data.
units_short : Optional[str]
Short form of the data units.
seasonal_adjustment : Optional[str]
The seasonal adjustment of the data.
seasonal_adjustment_short : Optional[str]
Short form of the data seasonal adjustment.
last_updated : Optional[datetime]
The datetime of the last update to the data.
popularity : Optional[int]
Popularity of the series
group_popularity : Optional[int]
Group popularity of the release
realtime_start : Optional[date]
The realtime start date of the series.
realtime_end : Optional[date]
The realtime end date of the series.
notes : Optional[str]
Description of the release.
press_release : Optional[bool]
If the release is a press release.
url : Optional[str]
URL to the release.
Examples
--------
>>> from openbb import obb
>>> obb.economy.fred_search(provider='fred')
""" # noqa: E501
return self._run(
"/economy/fred_search",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.fred_search",
("fred",),
)
},
standard_params={
"query": query,
},
extra_params=kwargs,
info={
"search_type": {
"fred": {
"multiple_items_allowed": False,
"choices": ["full_text", "series_id", "release"],
}
},
"order_by": {
"fred": {
"multiple_items_allowed": False,
"choices": [
"search_rank",
"series_id",
"title",
"units",
"frequency",
"seasonal_adjustment",
"realtime_start",
"realtime_end",
"last_updated",
"observation_start",
"observation_end",
"popularity",
"group_popularity",
],
}
},
"tag_names": {
"fred": {"multiple_items_allowed": True, "choices": None}
},
"exclude_tag_names": {
"fred": {"multiple_items_allowed": True, "choices": None}
},
},
)
)
@exception_handler
@validate
def fred_series(
self,
symbol: Annotated[
Union[str, list[str]],
OpenBBField(
description="Symbol to get data for. Multiple comma separated items allowed for provider(s): fred."
),
],
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,
limit: Annotated[
Optional[int],
OpenBBField(description="The number of data entries to return."),
] = 100000,
provider: Annotated[
Optional[Literal["fred", "intrinio"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred, intrinio."
),
] = None,
**kwargs
) -> OBBject:
"""Get data by series ID from FRED.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred, intrinio.
symbol : Union[str, list[str]]
Symbol to get data for. Multiple comma separated items allowed for provider(s): 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.
limit : Optional[int]
The number of data entries to return.
frequency : Optional[Literal['a', 'q', 'm', 'w', 'd', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
Frequency aggregation to convert high frequency data to lower frequency.
None = No change
a = Annual
q = Quarterly
m = Monthly
w = Weekly
d = Daily
wef = Weekly, Ending Friday
weth = Weekly, Ending Thursday
wew = Weekly, Ending Wednesday
wetu = Weekly, Ending Tuesday
wem = Weekly, Ending Monday
wesu = Weekly, Ending Sunday
wesa = Weekly, Ending Saturday
bwew = Biweekly, Ending Wednesday
bwem = Biweekly, Ending Monday
(provider: fred)
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
A key that indicates the aggregation method used for frequency aggregation.
This parameter has no affect if the frequency parameter is not set.
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)
all_pages : Optional[bool]
Returns all pages of data from the API call at once. (provider: intrinio)
sleep : Optional[float]
Time to sleep between requests to avoid rate limiting. (provider: intrinio)
Returns
-------
OBBject
results : list[FredSeries]
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.
FredSeries
----------
date : date
The date of the data.
value : Optional[float]
Value of the index. (provider: intrinio)
Examples
--------
>>> from openbb import obb
>>> obb.economy.fred_series(symbol='NFCI', provider='fred')
>>> # Multiple series can be passed in as a list.
>>> obb.economy.fred_series(symbol='NFCI,STLFSI4', provider='fred')
>>> # Use the `transform` parameter to transform the data as change, log, or percent change.
>>> obb.economy.fred_series(symbol='CBBTCUSD', transform='pc1', provider='fred')
""" # noqa: E501
return self._run(
"/economy/fred_series",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.fred_series",
("fred", "intrinio"),
)
},
standard_params={
"symbol": symbol,
"start_date": start_date,
"end_date": end_date,
"limit": limit,
},
extra_params=kwargs,
info={
"symbol": {
"fred": {"multiple_items_allowed": True, "choices": None}
},
"frequency": {
"fred": {
"multiple_items_allowed": False,
"choices": [
"a",
"q",
"m",
"w",
"d",
"wef",
"weth",
"wew",
"wetu",
"wem",
"wesu",
"wesa",
"bwew",
"bwem",
],
}
},
"aggregation_method": {
"fred": {
"multiple_items_allowed": False,
"choices": ["avg", "sum", "eop"],
}
},
"transform": {
"fred": {
"multiple_items_allowed": False,
"choices": [
"chg",
"ch1",
"pch",
"pc1",
"pca",
"cch",
"cca",
"log",
],
}
},
},
)
)
@property
def gdp(self):
# pylint: disable=import-outside-toplevel
from . import economy_gdp
return economy_gdp.ROUTER_economy_gdp(command_runner=self._command_runner)
@exception_handler
@validate
def house_price_index(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): oecd.\nChoices for oecd: 'G20', 'G7', 'argentina', 'australia', 'austria', 'belgium', 'brazil', 'bulgaria', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'croatia', 'czech_republic', 'denmark', 'estonia', 'euro_area_20', 'euro_area_19', 'europe', 'european_union_27', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd_total', 'poland', 'portugal', 'romania', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states', 'all'"
),
] = "united_states",
frequency: Annotated[
Literal["monthly", "quarter", "annual"],
OpenBBField(description="The frequency of the data."),
] = "quarter",
transform: Annotated[
Literal["index", "yoy", "period"],
OpenBBField(
description="Transformation of the CPI data. Period represents the change since previous. Defaults to change from one year ago (yoy)."
),
] = "index",
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get the House Price Index by country from the OECD Short-Term Economics Statistics.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): oecd.
Choices for oecd: 'G20', 'G7', 'argentina', 'australia', 'austria', 'belgium', 'brazil', 'bulgaria', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'croatia', 'czech_republic', 'denmark', 'estonia', 'euro_area_20', 'euro_area_19', 'europe', 'european_union_27', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd_total', 'poland', 'portugal', 'romania', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states', 'all'
frequency : Literal['monthly', 'quarter', 'annual']
The frequency of the data.
transform : Literal['index', 'yoy', 'period']
Transformation of the CPI data. Period represents the change since previous. Defaults to change from one year ago (yoy).
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.
Returns
-------
OBBject
results : list[HousePriceIndex]
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.
HousePriceIndex
---------------
date : Optional[date]
The date of the data.
country : Optional[str]
value : Optional[float]
Share price index value.
Examples
--------
>>> from openbb import obb
>>> obb.economy.house_price_index(provider='oecd')
>>> # Multiple countries can be passed in as a list.
>>> obb.economy.house_price_index(country='united_kingdom,germany', frequency='quarter', provider='oecd')
""" # noqa: E501
return self._run(
"/economy/house_price_index",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.house_price_index",
("oecd",),
)
},
standard_params={
"country": country,
"frequency": frequency,
"transform": transform,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"oecd": {
"multiple_items_allowed": True,
"choices": [
"G20",
"G7",
"argentina",
"australia",
"austria",
"belgium",
"brazil",
"bulgaria",
"canada",
"chile",
"china",
"colombia",
"costa_rica",
"croatia",
"czech_republic",
"denmark",
"estonia",
"euro_area_20",
"euro_area_19",
"europe",
"european_union_27",
"finland",
"france",
"germany",
"greece",
"hungary",
"iceland",
"india",
"indonesia",
"ireland",
"israel",
"italy",
"japan",
"korea",
"latvia",
"lithuania",
"luxembourg",
"mexico",
"netherlands",
"new_zealand",
"norway",
"oecd_total",
"poland",
"portugal",
"romania",
"russia",
"saudi_arabia",
"slovak_republic",
"slovenia",
"south_africa",
"spain",
"sweden",
"switzerland",
"turkey",
"united_kingdom",
"united_states",
"all",
],
}
}
},
)
)
@exception_handler
@validate
@deprecated(
"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.",
category=OpenBBDeprecationWarning,
)
def immediate_interest_rate(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): oecd.\nChoices for oecd: 'belgium', 'bulgaria', 'brazil', 'ireland', 'mexico', 'indonesia', 'new_zealand', 'japan', 'united_kingdom', 'france', 'chile', 'canada', 'netherlands', 'united_states', 'south_korea', 'norway', 'austria', 'south_africa', 'denmark', 'switzerland', 'hungary', 'luxembourg', 'australia', 'germany', 'sweden', 'iceland', 'turkey', 'greece', 'israel', 'czech_republic', 'latvia', 'slovenia', 'poland', 'estonia', 'lithuania', 'portugal', 'costa_rica', 'slovakia', 'finland', 'spain', 'romania', 'russia', 'euro_area19', 'colombia', 'italy', 'india', 'china', 'croatia', 'all'"
),
] = "united_states",
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get immediate interest rates by country.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): oecd.
Choices for oecd: 'belgium', 'bulgaria', 'brazil', 'ireland', 'mexico', 'indonesia', 'new_zealand', 'japan', 'united_kingdom', 'france', 'chile', 'canada', 'netherlands', 'united_states', 'south_korea', 'norway', 'austria', 'south_africa', 'denmark', 'switzerland', 'hungary', 'luxembourg', 'australia', 'germany', 'sweden', 'iceland', 'turkey', 'greece', 'israel', 'czech_republic', 'latvia', 'slovenia', 'poland', 'estonia', 'lithuania', 'portugal', 'costa_rica', 'slovakia', 'finland', 'spain', 'romania', 'russia', 'euro_area19', 'colombia', 'italy', 'india', 'china', 'croatia', 'all'
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.
frequency : Literal['monthly', 'quarter', 'annual']
The frequency of the data. (provider: oecd)
Returns
-------
OBBject
results : list[ImmediateInterestRate]
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.
ImmediateInterestRate
---------------------
date : Optional[date]
The date of the data.
country : Optional[str]
Country for which interest rate is given
value : Optional[float]
Immediate interest rates, call money, interbank rate.
Examples
--------
>>> from openbb import obb
>>> obb.economy.immediate_interest_rate(provider='oecd')
>>> # Multiple countries can be passed in as a list.
>>> obb.economy.immediate_interest_rate(country='united_kingdom,germany', frequency='monthly', provider='oecd')
""" # noqa: E501
simplefilter("always", DeprecationWarning)
warn(
"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.",
category=DeprecationWarning,
stacklevel=2,
)
return self._run(
"/economy/immediate_interest_rate",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.immediate_interest_rate",
("oecd",),
)
},
standard_params={
"country": country,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"oecd": {
"multiple_items_allowed": True,
"choices": [
"belgium",
"bulgaria",
"brazil",
"ireland",
"mexico",
"indonesia",
"new_zealand",
"japan",
"united_kingdom",
"france",
"chile",
"canada",
"netherlands",
"united_states",
"south_korea",
"norway",
"austria",
"south_africa",
"denmark",
"switzerland",
"hungary",
"luxembourg",
"australia",
"germany",
"sweden",
"iceland",
"turkey",
"greece",
"israel",
"czech_republic",
"latvia",
"slovenia",
"poland",
"estonia",
"lithuania",
"portugal",
"costa_rica",
"slovakia",
"finland",
"spain",
"romania",
"russia",
"euro_area19",
"colombia",
"italy",
"india",
"china",
"croatia",
"all",
],
}
}
},
)
)
@exception_handler
@validate
def indicators(
self,
country: Annotated[
Union[str, None, list[Optional[str]]],
OpenBBField(
description="The country to get data. The country represented by the indicator, if available. Multiple comma separated items allowed for provider(s): econdb, imf.\nChoices for imf: 'all', 'afghanistan', 'albania', 'algeria', 'american_samoa', 'angola', 'anguilla', 'antigua_and_barbuda', 'argentina', 'armenia', 'aruba', 'australia', 'austria', 'azerbaijan', 'bahamas', 'bahrain', 'bangladesh', 'barbados', 'belarus', 'belgium', 'belize', 'benin', 'bermuda', 'bhutan', 'bolivia', 'bosnia_and_herzegovina', 'botswana', 'brazil', 'brunei_darussalam', 'bulgaria', 'burkina_faso', 'burundi', 'cabo_verde', 'cambodia', 'cameroon', 'canada', 'central_african_republic', 'chad', 'chile', 'hong_kong', 'macao', 'china', 'colombia', 'comoros', 'democratic_republic_of_the_congo', 'congo', 'costa_rica', 'ivory_coast', 'croatia', 'cuba', 'curacao', 'cyprus', 'czech_republic', 'denmark', 'djibouti', 'dominica', 'dominican_republic', 'ecuador', 'egypt', 'el_salvador', 'equatorial_guinea', 'eritrea', 'estonia', 'eswatini', 'ethiopia', 'falkland_islands', 'faroe_islands', 'fiji', 'finland', 'france', 'french_polynesia', 'gabon', 'gambia', 'georgia', 'germany', 'ghana', 'gibraltar', 'greece', 'greenland', 'grenada', 'guam', 'guatemala', 'guinea', 'guyana', 'haiti', 'vatican_city_state', 'honduras', 'hungary', 'iceland', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'jamaica', 'japan', 'jordan', 'kazakhstan', 'kenya', 'kiribati', 'north_korea', 'south_korea', 'kosovo', 'kuwait', 'kyrgyzstan', 'lao', 'latvia', 'lebanon', 'lesotho', 'liberia', 'libya', 'lithuania', 'luxembourg', 'madagascar', 'malawi', 'malaysia', 'maldives', 'mali', 'malta', 'marshall_islands', 'mauritania', 'mauritius', 'mexico', 'micronesia', 'moldova', 'mongolia', 'montenegro', 'montserrat', 'morocco', 'mozambique', 'myanmar', 'namibia', 'nauru', 'nepal', 'antilles', 'netherlands', 'new_caledonia', 'new_zealand', 'nicaragua', 'niger', 'nigeria', 'north_macedonia', 'norway', 'oman', 'pakistan', 'palau', 'panama', 'papua_new_guinea', 'paraguay', 'peru', 'philippines', 'poland', 'portugal', 'qatar', 'romania', 'russia', 'rwanda', 'samoa', 'san_marino', 'sao_tome_and_principe', 'saudi_arabia', 'senegal', 'serbia_and_montenegro', 'serbia', 'seychelles', 'sierra_leone', 'singapore', 'sint_maarten', 'slovakia', 'slovenia', 'solomon_islands', 'somalia', 'south_africa', 'south_sudan', 'spain', 'sri_lanka', 'saint_kitts_and_nevis', 'saint_lucia', 'saint_vincent_and_the_grenadines', 'sudan', 'suriname', 'sweden', 'switzerland', 'syria', 'taiwan', 'tajikistan', 'tanzania', 'thailand', 'timor-leste', 'togo', 'tonga', 'trinidad_and_tobago', 'tunisia', 'turkey', 'turkmenistan', 'tuvalu', 'uganda', 'ukraine', 'united_arab_emirates', 'united_kingdom', 'united_states', 'uruguay', 'uzbekistan', 'vanuatu', 'venezuela', 'viet_nam', 'palestine', 'yemen', 'zambia', 'zimbabwe', 'euro_area', 'europe', 'european_union', 'unspecified'"
),
] = None,
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["econdb", "imf"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb, imf."
),
] = None,
**kwargs
) -> OBBject:
"""Get economic indicators by country and indicator.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb, imf.
country : Union[str, None, list[Optional[str]]]
The country to get data. The country represented by the indicator, if available. Multiple comma separated items allowed for provider(s): econdb, imf.
Choices for imf: 'all', 'afghanistan', 'albania', 'algeria', 'american_samoa', 'angola', 'anguilla', 'antigua_and_barbuda', 'argentina', 'armenia', 'aruba', 'australia', 'austria', 'azerbaijan', 'bahamas', 'bahrain', 'bangladesh', 'barbados', 'belarus', 'belgium', 'belize', 'benin', 'bermuda', 'bhutan', 'bolivia', 'bosnia_and_herzegovina', 'botswana', 'brazil', 'brunei_darussalam', 'bulgaria', 'burkina_faso', 'burundi', 'cabo_verde', 'cambodia', 'cameroon', 'canada', 'central_african_republic', 'chad', 'chile', 'hong_kong', 'macao', 'china', 'colombia', 'comoros', 'democratic_republic_of_the_congo', 'congo', 'costa_rica', 'ivory_coast', 'croatia', 'cuba', 'curacao', 'cyprus', 'czech_republic', 'denmark', 'djibouti', 'dominica', 'dominican_republic', 'ecuador', 'egypt', 'el_salvador', 'equatorial_guinea', 'eritrea', 'estonia', 'eswatini', 'ethiopia', 'falkland_islands', 'faroe_islands', 'fiji', 'finland', 'france', 'french_polynesia', 'gabon', 'gambia', 'georgia', 'germany', 'ghana', 'gibraltar', 'greece', 'greenland', 'grenada', 'guam', 'guatemala', 'guinea', 'guyana', 'haiti', 'vatican_city_state', 'honduras', 'hungary', 'iceland', 'india', 'indonesia', 'iran', 'iraq', 'ireland', 'israel', 'italy', 'jamaica', 'japan', 'jordan', 'kazakhstan', 'kenya', 'kiribati', 'north_korea', 'south_korea', 'kosovo', 'kuwait', 'kyrgyzstan', 'lao', 'latvia', 'lebanon', 'lesotho', 'liberia', 'libya', 'lithuania', 'luxembourg', 'madagascar', 'malawi', 'malaysia', 'maldives', 'mali', 'malta', 'marshall_islands', 'mauritania', 'mauritius', 'mexico', 'micronesia', 'moldova', 'mongolia', 'montenegro', 'montserrat', 'morocco', 'mozambique', 'myanmar', 'namibia', 'nauru', 'nepal', 'antilles', 'netherlands', 'new_caledonia', 'new_zealand', 'nicaragua', 'niger', 'nigeria', 'north_macedonia', 'norway', 'oman', 'pakistan', 'palau', 'panama', 'papua_new_guinea', 'paraguay', 'peru', 'philippines', 'poland', 'portugal', 'qatar', 'romania', 'russia', 'rwanda', 'samoa', 'san_marino', 'sao_tome_and_principe', 'saudi_arabia', 'senegal', 'serbia_and_montenegro', 'serbia', 'seychelles', 'sierra_leone', 'singapore', 'sint_maarten', 'slovakia', 'slovenia', 'solomon_islands', 'somalia', 'south_africa', 'south_sudan', 'spain', 'sri_lanka', 'saint_kitts_and_nevis', 'saint_lucia', 'saint_vincent_and_the_grenadines', 'sudan', 'suriname', 'sweden', 'switzerland', 'syria', 'taiwan', 'tajikistan', 'tanzania', 'thailand', 'timor-leste', 'togo', 'tonga', 'trinidad_and_tobago', 'tunisia', 'turkey', 'turkmenistan', 'tuvalu', 'uganda', 'ukraine', 'united_arab_emirates', 'united_kingdom', 'united_states', 'uruguay', 'uzbekistan', 'vanuatu', 'venezuela', 'viet_nam', 'palestine', 'yemen', 'zambia', 'zimbabwe', 'euro_area', 'europe', 'european_union', 'unspecified'
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.
symbol : Optional[str]
Symbol to get data for. The base symbol for the indicator (e.g. GDP, CPI, etc.). Use `available_indicators()` to get a list of available symbols. Multiple comma separated items allowed. (provider: econdb)
transform : Optional[Literal['toya', 'tpop', 'tusd', 'tpgp']]
The transformation to apply to the data, default is None.
tpop: Change from previous period
toya: Change from one year ago
tusd: Values as US dollars
tpgp: Values as a percent of GDP
Only 'tpop' and 'toya' are applicable to all indicators. Applying transformations across multiple indicators/countries may produce unexpected results.
This is because not all indicators are compatible with all transformations, and the original units and scale differ between entities.
`tusd` should only be used where values are currencies. (provider: econdb)
frequency : Literal['annual', 'quarter', 'month']
The frequency of the data, default is 'quarter'. Only valid when 'symbol' is 'main'. (provider: econdb)
use_cache : bool
If True, the request will be cached for one day. Using cache is recommended to avoid needlessly requesting the same data. (provider: econdb)
Returns
-------
OBBject
results : list[EconomicIndicators]
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.
EconomicIndicators
------------------
date : date
The date of the data.
symbol_root : Optional[str]
The root symbol for the indicator (e.g. GDP).
symbol : Optional[str]
Symbol representing the entity requested in the data.
country : Optional[str]
The country represented by the data.
value : Optional[Union[int, float]]
unit : Optional[str]
The unit of the value. (provider: imf)
scale : Optional[str]
The scale of the value. (provider: imf)
table : Optional[str]
The name of the table associated with the symbol. (provider: imf)
level : Optional[int]
The indentation level of the data, relative to the table and symbol_root (provider: imf)
order : Optional[Union[int, float]]
Order of the data, relative to the table. (provider: imf)
reference_sector : Optional[str]
The reference sector for the data. (provider: imf)
title : Optional[str]
The title of the series associated with the symbol. (provider: imf)
Examples
--------
>>> from openbb import obb
>>> obb.economy.indicators(provider='econdb', symbol='PCOCO')
>>> # Enter the country as the full name, or iso code. Use `available_indicators()` to get a list of supported indicators from EconDB.
>>> obb.economy.indicators(symbol='CPI', country='united_states,jp', provider='econdb')
>>> # Use the `main` symbol to get the group of main indicators for a country.
>>> obb.economy.indicators(provider='econdb', symbol='main', country='eu')
>>> # 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.
>>> obb.economy.indicators(provider='imf')
>>> # 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.
>>> obb.economy.indicators(provider='imf', symbol='gold_reserves')
>>> # 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.
>>> obb.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')
>>> # When the provider is 'imf', additional presets return the core Financial Soundness Indicators.
'fsi_core' - Core FSIs
'fsi_encouraged_set' - Encouraged Set of FSIs,
'fsi_core_underlying' - Underlying data for the Core FSIs.
'fsi_other' - Additional/Other FSIs that are not in the Core or Encouraged Set.
'fsi_all' - all FSI data for a single country.
>>> obb.economy.indicators(provider='imf', symbol='fsi_encouraged_set', country='us,fr,gb', start_date='2022-01-01', end_date='2023-12-31', frequency='annual')
""" # noqa: E501
return self._run(
"/economy/indicators",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.indicators",
("econdb", "imf"),
)
},
standard_params={
"country": country,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"econdb": {"multiple_items_allowed": True, "choices": None},
"imf": {
"multiple_items_allowed": True,
"choices": [
"all",
"afghanistan",
"albania",
"algeria",
"american_samoa",
"angola",
"anguilla",
"antigua_and_barbuda",
"argentina",
"armenia",
"aruba",
"australia",
"austria",
"azerbaijan",
"bahamas",
"bahrain",
"bangladesh",
"barbados",
"belarus",
"belgium",
"belize",
"benin",
"bermuda",
"bhutan",
"bolivia",
"bosnia_and_herzegovina",
"botswana",
"brazil",
"brunei_darussalam",
"bulgaria",
"burkina_faso",
"burundi",
"cabo_verde",
"cambodia",
"cameroon",
"canada",
"central_african_republic",
"chad",
"chile",
"hong_kong",
"macao",
"china",
"colombia",
"comoros",
"democratic_republic_of_the_congo",
"congo",
"costa_rica",
"ivory_coast",
"croatia",
"cuba",
"curacao",
"cyprus",
"czech_republic",
"denmark",
"djibouti",
"dominica",
"dominican_republic",
"ecuador",
"egypt",
"el_salvador",
"equatorial_guinea",
"eritrea",
"estonia",
"eswatini",
"ethiopia",
"falkland_islands",
"faroe_islands",
"fiji",
"finland",
"france",
"french_polynesia",
"gabon",
"gambia",
"georgia",
"germany",
"ghana",
"gibraltar",
"greece",
"greenland",
"grenada",
"guam",
"guatemala",
"guinea",
"guyana",
"haiti",
"vatican_city_state",
"honduras",
"hungary",
"iceland",
"india",
"indonesia",
"iran",
"iraq",
"ireland",
"israel",
"italy",
"jamaica",
"japan",
"jordan",
"kazakhstan",
"kenya",
"kiribati",
"north_korea",
"south_korea",
"kosovo",
"kuwait",
"kyrgyzstan",
"lao",
"latvia",
"lebanon",
"lesotho",
"liberia",
"libya",
"lithuania",
"luxembourg",
"madagascar",
"malawi",
"malaysia",
"maldives",
"mali",
"malta",
"marshall_islands",
"mauritania",
"mauritius",
"mexico",
"micronesia",
"moldova",
"mongolia",
"montenegro",
"montserrat",
"morocco",
"mozambique",
"myanmar",
"namibia",
"nauru",
"nepal",
"antilles",
"netherlands",
"new_caledonia",
"new_zealand",
"nicaragua",
"niger",
"nigeria",
"north_macedonia",
"norway",
"oman",
"pakistan",
"palau",
"panama",
"papua_new_guinea",
"paraguay",
"peru",
"philippines",
"poland",
"portugal",
"qatar",
"romania",
"russia",
"rwanda",
"samoa",
"san_marino",
"sao_tome_and_principe",
"saudi_arabia",
"senegal",
"serbia_and_montenegro",
"serbia",
"seychelles",
"sierra_leone",
"singapore",
"sint_maarten",
"slovakia",
"slovenia",
"solomon_islands",
"somalia",
"south_africa",
"south_sudan",
"spain",
"sri_lanka",
"saint_kitts_and_nevis",
"saint_lucia",
"saint_vincent_and_the_grenadines",
"sudan",
"suriname",
"sweden",
"switzerland",
"syria",
"taiwan",
"tajikistan",
"tanzania",
"thailand",
"timor-leste",
"togo",
"tonga",
"trinidad_and_tobago",
"tunisia",
"turkey",
"turkmenistan",
"tuvalu",
"uganda",
"ukraine",
"united_arab_emirates",
"united_kingdom",
"united_states",
"uruguay",
"uzbekistan",
"vanuatu",
"venezuela",
"viet_nam",
"palestine",
"yemen",
"zambia",
"zimbabwe",
"euro_area",
"europe",
"european_union",
"unspecified",
],
},
},
"symbol": {
"econdb": {"multiple_items_allowed": True, "choices": None},
"imf": {"multiple_items_allowed": True, "choices": None},
},
"frequency": {
"imf": {
"multiple_items_allowed": False,
"choices": ["annual", "quarter", "month"],
}
},
},
)
)
@exception_handler
@validate
def interest_rates(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): oecd.\nChoices for oecd: 'belgium', 'bulgaria', 'brazil', 'ireland', 'mexico', 'indonesia', 'new_zealand', 'japan', 'united_kingdom', 'france', 'chile', 'canada', 'netherlands', 'united_states', 'south_korea', 'norway', 'austria', 'south_africa', 'denmark', 'switzerland', 'hungary', 'luxembourg', 'australia', 'germany', 'sweden', 'iceland', 'turkey', 'greece', 'israel', 'czech_republic', 'latvia', 'slovenia', 'poland', 'estonia', 'lithuania', 'portugal', 'costa_rica', 'slovakia', 'finland', 'spain', 'romania', 'russia', 'euro_area19', 'colombia', 'italy', 'india', 'china', 'croatia', 'all'"
),
] = "united_states",
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get interest rates by country(s) and duration.
Most OECD countries publish short-term, a long-term, and immediate rates monthly.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): oecd.
Choices for oecd: 'belgium', 'bulgaria', 'brazil', 'ireland', 'mexico', 'indonesia', 'new_zealand', 'japan', 'united_kingdom', 'france', 'chile', 'canada', 'netherlands', 'united_states', 'south_korea', 'norway', 'austria', 'south_africa', 'denmark', 'switzerland', 'hungary', 'luxembourg', 'australia', 'germany', 'sweden', 'iceland', 'turkey', 'greece', 'israel', 'czech_republic', 'latvia', 'slovenia', 'poland', 'estonia', 'lithuania', 'portugal', 'costa_rica', 'slovakia', 'finland', 'spain', 'romania', 'russia', 'euro_area19', 'colombia', 'italy', 'india', 'china', 'croatia', 'all'
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.
duration : Literal['immediate', 'short', 'long']
Duration of the interest rate. 'immediate' is the overnight rate, 'short' is the 3-month rate, and 'long' is the 10-year rate. (provider: oecd)
frequency : Literal['monthly', 'quarter', 'annual']
Frequency to get interest rate for for. (provider: oecd)
Returns
-------
OBBject
results : list[CountryInterestRates]
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.
CountryInterestRates
--------------------
date : Optional[date]
The date of the data.
value : Optional[float]
The interest rate value.
country : Optional[str]
Country for which the interest rate is given.
Examples
--------
>>> from openbb import obb
>>> obb.economy.interest_rates(provider='oecd')
>>> # 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'.
>>> obb.economy.interest_rates(provider='oecd', country='all', duration='immediate', frequency='quarter')
>>> # Multiple countries can be passed in as a list.
>>> obb.economy.interest_rates(duration='long', country='united_kingdom,germany', frequency='monthly', provider='oecd')
""" # noqa: E501
return self._run(
"/economy/interest_rates",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.interest_rates",
("oecd",),
)
},
standard_params={
"country": country,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"oecd": {
"multiple_items_allowed": True,
"choices": [
"belgium",
"bulgaria",
"brazil",
"ireland",
"mexico",
"indonesia",
"new_zealand",
"japan",
"united_kingdom",
"france",
"chile",
"canada",
"netherlands",
"united_states",
"south_korea",
"norway",
"austria",
"south_africa",
"denmark",
"switzerland",
"hungary",
"luxembourg",
"australia",
"germany",
"sweden",
"iceland",
"turkey",
"greece",
"israel",
"czech_republic",
"latvia",
"slovenia",
"poland",
"estonia",
"lithuania",
"portugal",
"costa_rica",
"slovakia",
"finland",
"spain",
"romania",
"russia",
"euro_area19",
"colombia",
"italy",
"india",
"china",
"croatia",
"all",
],
}
},
"duration": {
"oecd": {
"multiple_items_allowed": False,
"choices": ["immediate", "short", "long"],
}
},
"frequency": {
"oecd": {
"multiple_items_allowed": False,
"choices": ["monthly", "quarter", "annual"],
}
},
},
)
)
@exception_handler
@validate
@deprecated(
"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.",
category=OpenBBDeprecationWarning,
)
def long_term_interest_rate(
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get Long-term interest rates that refer to government bonds maturing in ten years.
Rates are mainly determined by the price charged by the lender, the risk from the borrower and the
fall in the capital value. Long-term interest rates are generally averages of daily rates,
measured as a percentage. These interest rates are implied by the prices at which the government bonds are
traded on financial markets, not the interest rates at which the loans were issued.
In all cases, they refer to bonds whose capital repayment is guaranteed by governments.
Long-term interest rates are one of the determinants of business investment.
Low long-term interest rates encourage investment in new equipment and high interest rates discourage it.
Investment is, in turn, a major source of economic growth.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
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.
country : Literal['belgium', 'bulgaria', 'brazil', 'ireland', 'mexico', 'indonesia', 'new_zealand', 'japan', 'united_kingdom', 'france', 'chile', 'canada', 'netherlands', 'united_states', 'south_korea', 'norway', 'austria', 'south_africa', 'denmark', 'switzerland', 'hungary', 'luxembourg', 'australia', 'germany', 'sweden', 'iceland', 'turkey', 'greece', 'israel', 'czech_republic', 'latvia', 'slovenia', 'poland', 'estonia', 'lithuania', 'portugal', 'costa_rica', 'slovakia', 'finland', 'spain', 'romania', 'russia', 'euro_area19', 'colombia', 'italy', 'india', 'china', 'croatia', 'all']
Country to get interest rate for. (provider: oecd)
frequency : Literal['monthly', 'quarterly', 'annual']
Frequency to get interest rate for for. (provider: oecd)
Returns
-------
OBBject
results : list[LTIR]
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.
LTIR
----
date : Optional[date]
The date of the data.
value : Optional[float]
Interest rate (given as a whole number, i.e 10=10%)
country : Optional[str]
Country for which interest rate is given
Examples
--------
>>> from openbb import obb
>>> obb.economy.long_term_interest_rate(provider='oecd')
>>> obb.economy.long_term_interest_rate(country='all', frequency='quarterly', provider='oecd')
""" # noqa: E501
simplefilter("always", DeprecationWarning)
warn(
"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.",
category=DeprecationWarning,
stacklevel=2,
)
return self._run(
"/economy/long_term_interest_rate",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.long_term_interest_rate",
("oecd",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
)
)
@exception_handler
@validate
def money_measures(
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,
adjusted: Annotated[
Optional[bool],
OpenBBField(description="Whether to return seasonally adjusted data."),
] = True,
provider: Annotated[
Optional[Literal["federal_reserve"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve."
),
] = None,
**kwargs
) -> OBBject:
"""Get Money Measures (M1/M2 and components).
The Federal Reserve publishes as part of the H.6 Release.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve.
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.
adjusted : Optional[bool]
Whether to return seasonally adjusted data.
Returns
-------
OBBject
results : list[MoneyMeasures]
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.
MoneyMeasures
-------------
month : date
The date of the data.
M1 : float
Value of the M1 money supply in billions.
M2 : float
Value of the M2 money supply in billions.
currency : Optional[float]
Value of currency in circulation in billions.
demand_deposits : Optional[float]
Value of demand deposits in billions.
retail_money_market_funds : Optional[float]
Value of retail money market funds in billions.
other_liquid_deposits : Optional[float]
Value of other liquid deposits in billions.
small_denomination_time_deposits : Optional[float]
Value of small denomination time deposits in billions.
Examples
--------
>>> from openbb import obb
>>> obb.economy.money_measures(provider='federal_reserve')
>>> obb.economy.money_measures(adjusted=False, provider='federal_reserve')
""" # noqa: E501
return self._run(
"/economy/money_measures",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.money_measures",
("federal_reserve",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
"adjusted": adjusted,
},
extra_params=kwargs,
)
)
@exception_handler
@validate
def pce(
self,
date: Annotated[
Union[datetime.date, str, None, list[Union[datetime.date, str, None]]],
OpenBBField(
description="A specific date to get data for. Default is the latest report. Multiple comma separated items allowed for provider(s): fred."
),
] = 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 Personal Consumption Expenditures (PCE) reports.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
date : Union[date, str, None, list[Union[date, str, None]]]
A specific date to get data for. Default is the latest report. Multiple comma separated items allowed for provider(s): fred.
category : Literal['personal_income', 'wages_by_industry', 'real_pce_percent_change', 'real_pce_quantity_index', 'pce_price_index', 'pce_dollars', 'real_pce_chained_dollars', 'pce_price_percent_change']
The category to query. (provider: fred)
Returns
-------
OBBject
results : list[PersonalConsumptionExpenditures]
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.
PersonalConsumptionExpenditures
-------------------------------
date : date
The date of the data.
symbol : str
Symbol representing the entity requested in the data.
value : float
name : Optional[str]
The name of the series. (provider: fred)
element_id : Optional[str]
The element id in the parent/child relationship. (provider: fred)
parent_id : Optional[str]
The parent id in the parent/child relationship. (provider: fred)
children : Optional[str]
The element_id of each child, as a comma-separated string. (provider: fred)
level : Optional[int]
The indentation level of the element. (provider: fred)
line : Optional[int]
The line number of the series in the table. (provider: fred)
Examples
--------
>>> from openbb import obb
>>> obb.economy.pce(provider='fred')
>>> # Get reports for multiple dates, entered as a comma-separated string.
>>> obb.economy.pce(provider='fred', date='2024-05-01,2024-04-01,2023-05-01', category='pce_price_index')
""" # noqa: E501
return self._run(
"/economy/pce",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.pce",
("fred",),
)
},
standard_params={
"date": date,
},
extra_params=kwargs,
info={
"date": {"fred": {"multiple_items_allowed": True, "choices": None}}
},
)
)
@exception_handler
@validate
def port_volume(
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["econdb"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb."
),
] = None,
**kwargs
) -> OBBject:
"""Get average dwelling times and TEU volumes from the top ports.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: econdb.
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.
Returns
-------
OBBject
results : list[PortVolume]
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.
PortVolume
----------
date : date
The date of the data.
port_code : Optional[str]
Port code.
port_name : Optional[str]
Port name.
country : Optional[str]
Country where the port is located.
export_dwell_time : Optional[float]
EconDB model estimate for the average number of days from when a container enters the terminal gates until it is loaded on a vessel. High dwelling times can indicate vessel delays. (provider: econdb)
import_dwell_time : Optional[float]
EconDB model estimate for the average number of days from when a container is discharged from a vessel until it exits the terminal gates. High dwelling times can indicate trucking or port congestion. (provider: econdb)
import_teu : Optional[int]
EconDB model estimate for the number of twenty-foot equivalent units (TEUs) of containers imported through the port. (provider: econdb)
export_teu : Optional[int]
EconDB model estimate for the number of twenty-foot equivalent units (TEUs) of containers exported through the port. (provider: econdb)
Examples
--------
>>> from openbb import obb
>>> obb.economy.port_volume(provider='econdb')
""" # noqa: E501
return self._run(
"/economy/port_volume",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.port_volume",
("econdb",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
)
)
@exception_handler
@validate
def primary_dealer_fails(
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["federal_reserve"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve."
),
] = None,
**kwargs
) -> OBBject:
"""Primary Dealer Statistics for Fails to Deliver and Fails to Receive.
Data from the NY Federal Reserve are updated on Thursdays at approximately
4:15 p.m. with the previous week's statistics.
For research on the topic, see:
https://www.federalreserve.gov/econres/notes/feds-notes/the-systemic-nature-of-settlement-fails-20170703.html
"Large and protracted settlement fails are believed to undermine the liquidity
and well-functioning of securities markets.
Near-100 percent pass-through of fails suggests a high degree of collateral
re-hypothecation together with the inability or unwillingness to borrow or buy the needed securities."
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve.
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.
asset_class : Literal['all', 'treasuries', 'tips', 'agency', 'mbs', 'corporate']
Asset class to return, default is 'all'. (provider: federal_reserve)
unit : Literal['value', 'percent']
Unit of the data returned to the 'value' field. Default is 'value', which represents millions of USD. 'percent' returns data as the percentage of the total fails-to-receive and fails-to-deliver, by asset class. (provider: federal_reserve)
Returns
-------
OBBject
results : list[PrimaryDealerFails]
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.
PrimaryDealerFails
------------------
date : date
The date of the data.
symbol : str
Symbol representing the entity requested in the data.
title : Optional[str]
Title of the series' symbol. (provider: federal_reserve)
value : Optional[Union[int, float]]
Value of the data returned, in millions of USD if the `unit` parameter is 'value' else a normalized percent. (provider: federal_reserve)
Examples
--------
>>> from openbb import obb
>>> obb.economy.primary_dealer_fails(provider='federal_reserve')
>>> # Transform the data to be percentage totals by asset class
>>> obb.economy.primary_dealer_fails(provider='federal_reserve', unit='percent')
""" # noqa: E501
return self._run(
"/economy/primary_dealer_fails",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.primary_dealer_fails",
("federal_reserve",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"asset_class": {
"federal_reserve": {
"multiple_items_allowed": False,
"choices": [
"all",
"treasuries",
"tips",
"agency",
"mbs",
"corporate",
],
}
},
"unit": {
"federal_reserve": {
"multiple_items_allowed": False,
"choices": ["value", "percent"],
}
},
},
)
)
@exception_handler
@validate
def primary_dealer_positioning(
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["federal_reserve"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve."
),
] = None,
**kwargs
) -> OBBject:
"""Get Primary dealer positioning statistics.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: federal_reserve.
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.
category : Literal['treasuries', 'bills', 'coupons', 'notes', 'tips', 'mbs', 'cmbs', 'municipal', 'corporate', 'commercial_paper', 'corporate_ig', 'corporate_junk', 'abs']
The category of asset to return, defaults to 'treasuries'. (provider: federal_reserve)
Returns
-------
OBBject
results : list[PrimaryDealerPositioning]
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.
PrimaryDealerPositioning
------------------------
date : date
The date of the data.
symbol : str
Symbol representing the entity requested in the data.
value : Optional[int]
The reported value of the net position (long - short), in millions of $USD. (provider: federal_reserve)
name : Optional[str]
Short name for the series. (provider: federal_reserve)
title : Optional[str]
Title of the series. (provider: federal_reserve)
Examples
--------
>>> from openbb import obb
>>> obb.economy.primary_dealer_positioning(provider='federal_reserve')
>>> obb.economy.primary_dealer_positioning(category='abs', provider='federal_reserve')
""" # noqa: E501
return self._run(
"/economy/primary_dealer_positioning",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.primary_dealer_positioning",
("federal_reserve",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
)
)
@exception_handler
@validate
def retail_prices(
self,
item: Annotated[
Optional[str],
OpenBBField(
description="The item or basket of items to query.\nChoices for fred: 'beverages', 'cereals', 'dairy', 'fuel', 'meats', 'produce', 'bacon', 'bananas', 'beans', 'beef', 'beer', 'bread', 'butter', 'cheese', 'chicken', 'chops', 'coffee', 'cookies', 'corn', 'diesel', 'eggs', 'electricity', 'flour', 'gas', 'gasoline', 'grapefruit', 'groud_beef', 'ham', 'ice_cream', 'lemons', 'lettuce', 'malt_beverages', 'milk', 'oil', 'orange_juice', 'oranges', 'potato_chips', 'potatoes', 'pork', 'rice', 'soft_drinks', 'spaghetti', 'steak', 'strawberries', 'sugar', 'tomatoes', 'unleaded', 'usda', 'vodka', 'wine', 'yogurt'"
),
] = None,
country: Annotated[
str,
OpenBBField(
description="The country to get data.\nChoices for fred: 'united_states'"
),
] = "united_states",
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 retail prices for common items.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
item : Optional[str]
The item or basket of items to query.
Choices for fred: 'beverages', 'cereals', 'dairy', 'fuel', 'meats', 'produce', 'bacon', 'bananas', 'beans', 'beef', 'beer', 'bread', 'butter', 'cheese', 'chicken', 'chops', 'coffee', 'cookies', 'corn', 'diesel', 'eggs', 'electricity', 'flour', 'gas', 'gasoline', 'grapefruit', 'groud_beef', 'ham', 'ice_cream', 'lemons', 'lettuce', 'malt_beverages', 'milk', 'oil', 'orange_juice', 'oranges', 'potato_chips', 'potatoes', 'pork', 'rice', 'soft_drinks', 'spaghetti', 'steak', 'strawberries', 'sugar', 'tomatoes', 'unleaded', 'usda', 'vodka', 'wine', 'yogurt'
country : str
The country to get data.
Choices for fred: 'united_states'
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.
region : Literal['all_city', 'northeast', 'midwest', 'south', 'west']
The region to get average price levels for. (provider: fred)
frequency : Literal['annual', 'quarter', 'monthly']
The frequency of the data. (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[RetailPrices]
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.
RetailPrices
------------
date : Optional[date]
The date of the data.
symbol : Optional[str]
Symbol representing the entity requested in the data.
country : Optional[str]
description : Optional[str]
Description of the item.
value : Optional[float]
Price, or change in price, per unit.
Examples
--------
>>> from openbb import obb
>>> obb.economy.retail_prices(provider='fred')
>>> # The price of eggs in the northeast census region.
>>> obb.economy.retail_prices(item='eggs', region='northeast', provider='fred')
>>> # The percentage change in price, from one-year ago, of various meats, US City Average.
>>> obb.economy.retail_prices(item='meats', transform='pc1', provider='fred')
""" # noqa: E501
return self._run(
"/economy/retail_prices",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.retail_prices",
("fred",),
)
},
standard_params={
"item": item,
"country": country,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"item": {
"fred": {
"multiple_items_allowed": False,
"choices": [
"beverages",
"cereals",
"dairy",
"fuel",
"meats",
"produce",
"bacon",
"bananas",
"beans",
"beef",
"beer",
"bread",
"butter",
"cheese",
"chicken",
"chops",
"coffee",
"cookies",
"corn",
"diesel",
"eggs",
"electricity",
"flour",
"gas",
"gasoline",
"grapefruit",
"groud_beef",
"ham",
"ice_cream",
"lemons",
"lettuce",
"malt_beverages",
"milk",
"oil",
"orange_juice",
"oranges",
"potato_chips",
"potatoes",
"pork",
"rice",
"soft_drinks",
"spaghetti",
"steak",
"strawberries",
"sugar",
"tomatoes",
"unleaded",
"usda",
"vodka",
"wine",
"yogurt",
],
}
},
"country": {
"fred": {
"multiple_items_allowed": False,
"choices": ["united_states"],
}
},
},
)
)
@exception_handler
@validate
def risk_premium(
self,
provider: Annotated[
Optional[Literal["fmp"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fmp."
),
] = None,
**kwargs
) -> OBBject:
"""Get Market Risk Premium by country.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fmp.
Returns
-------
OBBject
results : list[RiskPremium]
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.
RiskPremium
-----------
country : str
Market country.
continent : Optional[str]
Continent of the country.
total_equity_risk_premium : Optional[Annotated[float, Gt(gt=0)]]
Total equity risk premium for the country.
country_risk_premium : Optional[Annotated[float, Ge(ge=0)]]
Country-specific risk premium.
Examples
--------
>>> from openbb import obb
>>> obb.economy.risk_premium(provider='fmp')
""" # noqa: E501
return self._run(
"/economy/risk_premium",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.risk_premium",
("fmp",),
)
},
standard_params={},
extra_params=kwargs,
)
)
@exception_handler
@validate
def share_price_index(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): oecd.\nChoices for oecd: 'G20', 'G7', 'all', 'argentina', 'australia', 'austria', 'belgium', 'brazil', 'bulgaria', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'croatia', 'czech_republic', 'denmark', 'estonia', 'euro_area_19', 'euro_area_20', 'europe', 'european_union_27', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd_total', 'poland', 'portugal', 'romania', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states'"
),
] = "united_states",
frequency: Annotated[
Literal["monthly", "quarter", "annual"],
OpenBBField(description="The frequency of the data."),
] = "monthly",
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get the Share Price Index by country from the OECD Short-Term Economics Statistics.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): oecd.
Choices for oecd: 'G20', 'G7', 'all', 'argentina', 'australia', 'austria', 'belgium', 'brazil', 'bulgaria', 'canada', 'chile', 'china', 'colombia', 'costa_rica', 'croatia', 'czech_republic', 'denmark', 'estonia', 'euro_area_19', 'euro_area_20', 'europe', 'european_union_27', 'finland', 'france', 'germany', 'greece', 'hungary', 'iceland', 'india', 'indonesia', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd_total', 'poland', 'portugal', 'romania', 'russia', 'saudi_arabia', 'slovak_republic', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states'
frequency : Literal['monthly', 'quarter', 'annual']
The frequency of the data.
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.
Returns
-------
OBBject
results : list[SharePriceIndex]
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.
SharePriceIndex
---------------
date : Optional[date]
The date of the data.
country : Optional[str]
value : Optional[float]
Share price index value.
Examples
--------
>>> from openbb import obb
>>> obb.economy.share_price_index(provider='oecd')
>>> # Multiple countries can be passed in as a list.
>>> obb.economy.share_price_index(country='united_kingdom,germany', frequency='quarter', provider='oecd')
""" # noqa: E501
return self._run(
"/economy/share_price_index",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.share_price_index",
("oecd",),
)
},
standard_params={
"country": country,
"frequency": frequency,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"oecd": {
"multiple_items_allowed": True,
"choices": [
"G20",
"G7",
"all",
"argentina",
"australia",
"austria",
"belgium",
"brazil",
"bulgaria",
"canada",
"chile",
"china",
"colombia",
"costa_rica",
"croatia",
"czech_republic",
"denmark",
"estonia",
"euro_area_19",
"euro_area_20",
"europe",
"european_union_27",
"finland",
"france",
"germany",
"greece",
"hungary",
"iceland",
"india",
"indonesia",
"ireland",
"israel",
"italy",
"japan",
"korea",
"latvia",
"lithuania",
"luxembourg",
"mexico",
"netherlands",
"new_zealand",
"norway",
"oecd_total",
"poland",
"portugal",
"romania",
"russia",
"saudi_arabia",
"slovak_republic",
"slovenia",
"south_africa",
"spain",
"sweden",
"switzerland",
"turkey",
"united_kingdom",
"united_states",
],
}
}
},
)
)
@exception_handler
@validate
@deprecated(
"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.",
category=OpenBBDeprecationWarning,
)
def short_term_interest_rate(
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get Short-term interest rates.
They are the rates at which short-term borrowings are effected between
financial institutions or the rate at which short-term government paper is issued or traded in the market.
Short-term interest rates are generally averages of daily rates, measured as a percentage.
Short-term interest rates are based on three-month money market rates where available.
Typical standardised names are "money market rate" and "treasury bill rate".
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
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.
country : Literal['belgium', 'bulgaria', 'brazil', 'ireland', 'mexico', 'indonesia', 'new_zealand', 'japan', 'united_kingdom', 'france', 'chile', 'canada', 'netherlands', 'united_states', 'south_korea', 'norway', 'austria', 'south_africa', 'denmark', 'switzerland', 'hungary', 'luxembourg', 'australia', 'germany', 'sweden', 'iceland', 'turkey', 'greece', 'israel', 'czech_republic', 'latvia', 'slovenia', 'poland', 'estonia', 'lithuania', 'portugal', 'costa_rica', 'slovakia', 'finland', 'spain', 'romania', 'russia', 'euro_area19', 'colombia', 'italy', 'india', 'china', 'croatia', 'all']
Country to get interest rate for. (provider: oecd)
frequency : Literal['monthly', 'quarterly', 'annual']
Frequency to get interest rate for for. (provider: oecd)
Returns
-------
OBBject
results : list[STIR]
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.
STIR
----
date : Optional[date]
The date of the data.
value : Optional[float]
Interest rate (given as a whole number, i.e 10=10%)
country : Optional[str]
Country for which interest rate is given
Examples
--------
>>> from openbb import obb
>>> obb.economy.short_term_interest_rate(provider='oecd')
>>> obb.economy.short_term_interest_rate(country='all', frequency='quarterly', provider='oecd')
""" # noqa: E501
simplefilter("always", DeprecationWarning)
warn(
"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.",
category=DeprecationWarning,
stacklevel=2,
)
return self._run(
"/economy/short_term_interest_rate",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.short_term_interest_rate",
("oecd",),
)
},
standard_params={
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
)
)
@property
def survey(self):
# pylint: disable=import-outside-toplevel
from . import economy_survey
return economy_survey.ROUTER_economy_survey(command_runner=self._command_runner)
@exception_handler
@validate
def unemployment(
self,
country: Annotated[
Union[str, list[str]],
OpenBBField(
description="The country to get data. Multiple comma separated items allowed for provider(s): oecd.\nChoices for oecd: 'all', 'australia', 'austria', 'belgium', 'canada', 'chile', 'colombia', 'costa_rica', 'czech_republic', 'denmark', 'estonia', 'euro_area20', 'european_union27_2020', 'finland', 'france', 'g7', 'germany', 'greece', 'hungary', 'iceland', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd', 'poland', 'portugal', 'russia', 'slovakia', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states'"
),
] = "united_states",
frequency: Annotated[
Literal["monthly", "quarter", "annual"],
OpenBBField(description="The frequency of the data."),
] = "monthly",
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["oecd"]],
OpenBBField(
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd."
),
] = None,
**kwargs
) -> OBBject:
"""Get global unemployment data.
Parameters
----------
provider : str
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: oecd.
country : Union[str, list[str]]
The country to get data. Multiple comma separated items allowed for provider(s): oecd.
Choices for oecd: 'all', 'australia', 'austria', 'belgium', 'canada', 'chile', 'colombia', 'costa_rica', 'czech_republic', 'denmark', 'estonia', 'euro_area20', 'european_union27_2020', 'finland', 'france', 'g7', 'germany', 'greece', 'hungary', 'iceland', 'ireland', 'israel', 'italy', 'japan', 'korea', 'latvia', 'lithuania', 'luxembourg', 'mexico', 'netherlands', 'new_zealand', 'norway', 'oecd', 'poland', 'portugal', 'russia', 'slovakia', 'slovenia', 'south_africa', 'spain', 'sweden', 'switzerland', 'turkey', 'united_kingdom', 'united_states'
frequency : Literal['monthly', 'quarter', 'annual']
The frequency of the data.
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.
sex : Literal['total', 'male', 'female']
Sex to get unemployment for. (provider: oecd)
age : Literal['total', '15-24', '25+']
Age group to get unemployment for. Total indicates 15 years or over (provider: oecd)
seasonal_adjustment : bool
Whether to get seasonally adjusted unemployment. Defaults to False. (provider: oecd)
Returns
-------
OBBject
results : list[Unemployment]
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.
Unemployment
------------
date : Optional[date]
The date of the data.
country : Optional[str]
Country for which unemployment rate is given
value : Optional[float]
Unemployment rate, as a normalized percent.
Examples
--------
>>> from openbb import obb
>>> obb.economy.unemployment(provider='oecd')
>>> obb.economy.unemployment(country='all', frequency='quarter', provider='oecd')
>>> # Demographics for the statistics are selected with the `age` parameter.
>>> obb.economy.unemployment(country='all', frequency='quarter', age='total', provider='oecd')
""" # noqa: E501
return self._run(
"/economy/unemployment",
**filter_inputs(
provider_choices={
"provider": self._get_provider(
provider,
"economy.unemployment",
("oecd",),
)
},
standard_params={
"country": country,
"frequency": frequency,
"start_date": start_date,
"end_date": end_date,
},
extra_params=kwargs,
info={
"country": {
"oecd": {
"multiple_items_allowed": True,
"choices": [
"all",
"australia",
"austria",
"belgium",
"canada",
"chile",
"colombia",
"costa_rica",
"czech_republic",
"denmark",
"estonia",
"euro_area20",
"european_union27_2020",
"finland",
"france",
"g7",
"germany",
"greece",
"hungary",
"iceland",
"ireland",
"israel",
"italy",
"japan",
"korea",
"latvia",
"lithuania",
"luxembourg",
"mexico",
"netherlands",
"new_zealand",
"norway",
"oecd",
"poland",
"portugal",
"russia",
"slovakia",
"slovenia",
"south_africa",
"spain",
"sweden",
"switzerland",
"turkey",
"united_kingdom",
"united_states",
],
}
}
},
)
)