Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now


  • New York
  • open
  • London
  • open
  • Tokyo
  • open
  • Sydney
  • open

Use AssetMacro API to Get Historical Data of 120,000+ Financial & Macroeconomic Datasets like Stocks Prices & US GDP.

AssetMacro API is a python based Easy to Use API, covering 120,000+ Financial and Economic Indicators and can be used as Finance API, Stock API similar to Yahoo Finance API. Click here or scroll down to Filter through or search the Financial and Economic Variables covered by AssetMacro API.

Get Instant Access. This is a Single Payment without any monthly subscription costs.

AssetMacro obtains financial & economic data directly from original, timely, primary sources. Sources include national statistical agencies, government ministries, central banks. Data history stretches from 5 to 50 years. Advanced Data Quality control ensure High Data Quality.

Click to View AssetMacro API Documentation

AssetMacro Database Summary

40,000+ Economic Indicators of 120 Countries
Leading Indicators
Manufacturing & Services Purchasing Managers Indexes (ISM,PMI)
Sources: Markit, ISM
National Accounts
Gross Domestic Product
Consumer Spending
Government Consumption
Fixed Investment
Exports, Imports of Goods & Services
Balance of Payments
Current and Financial Account Balances
Export, Import of Goods
Balance of Goods
International Reserves
Monetary Series
Money Supply - M0, M1, M2, M3
Interest Rates
Lending Rates
Consumer Price Index
Core and Harmonized CPI
Export, Import Price Indices
Terms of Trade
Producer Price Index (PPI)
Labour Market
Total Employment & Payrolls
Job Vaancies
Public Sector
Government Surplus/Deficit
Government External Debt
Private Sector
Personal Savings, Disposable Income
Retail Sales
Car Registrations
Consumer Credit
Consumer Confidence
Industrial & Manufacturing Production
Capacity Utilization
New Orders
Productivity & Labour Costs
Housing Indicators (e.g. Housing Index, Construction Output)
80,000+ Financial Data
60,000+ Stocks Historical Price & Financial Data

Up to 30 Years of History
Financial Fundamental Data (Financial Statements & Ratios)
Historical End of Day Prices
Exchanges: NYSE, Nasdaq, AMEX, NYSE ARCA, TSX,
1,000 Country Stock Indices & Volatility Indices
3,000 US, Europe & Asia Stock Sectors & Industries

Sources: S&P, MSCI, Stoxx, Dow Jones
Major & Minor Commodities, CRB & Shipping Indices

Sources: CME, LME, Dalian

Countries Bond Indices of Different Maturities
Bond Indices of Sectors (S&P)
Global Currencies
Credit Default Swaps of Major Countries & Companies

AssetMacro API Documentation

Follow the Steps below to Access the AssetMacro Database via the following API:
Step 1: Copy the following Code or click to download python file
Step 2: Replace your username and password in am object (You can use the test account to check functionality)
Step 3: Insert your Query's criteria in d=am.load by specifying the variable id, start and end date

import http.client
from urllib.parse import quote
import pandas as pd

class AssetMacro(object):

    user_name = None
    password = None
    conn = None
    headers = None
    payload = None

    def __init__(self, user_name, password):
        self.auth(user_name, password)
        self.conn = http.client.HTTPConnection("")

    def auth(self, user_name, password):
        self.user_name = user_name
        self.password = password
        self.headers = {'Authorization': '{};{}'.format(self.user_name, self.password)}

    def get_vars(self):
        self.conn.request(method="GET", url="/vars", headers=self.headers)
        response = self.conn.getresponse()
        data =
        str_data = data.decode("utf-8")
        return str_data.split(',')

    def load_data(self, var_name, start_date=None, end_date=None):
        v = self.get_vars()
        if var_name not in v:
            raise ValueError('Variable name not found, check the get_vars() result.')
        params = 'name={}'.format(quote(var_name))
        if start_date:
            params += '&start_date={}'.format(start_date)
        if end_date:
            params += '&end_date={}'.format(end_date)
        url = "/query?" + params
        self.conn.request(method="GET", url=url, headers=self.headers)
        response = self.conn.getresponse()
        if response.status == 200:
            data =
            str_data = data.decode("utf-8")
            data_rows = str_data.split('\r\n')
            if len(data_rows) <= 1:
                return data_rows
            data_arr = []
            for d in data_rows:
            d = data_arr[:-1] # skip the last empty row
            return pd.DataFrame(d[1:], columns=d[0])
            raise ValueError('Server error {} {}'.format(response.status, response.reason))
            return None

if __name__ == '__main__':
    am = AssetMacro('', 'nbPiE')
    v = am.get_vars()
    d = am.load_data('7468', '2014-01-01', '2017-12-31')
    print (d)