Logo
AXION

ETFs Historical Prices

GET/etfs/:ticker/prices

Retrieves comprehensive historical price data for a specific ETF. This powerful endpoint supports multiple time frame aggregations (daily, weekly, monthly, quarterly, yearly) and time-based filtering. Free tier access includes major US-listed ETFs with full historical data.

Path Parameters

ParameterTypeRequiredDescription
tickerstringRequiredETF ticker symbol (e.g., "SPY", "QQQ", "VTI")

Query Parameters

ParameterTypeRequiredDescription
framestringOptional

Time frame for price aggregation. Default: daily.

Value(s)Resolves to
daily, day, ddaily
weekly, wweek
monthly, month, mmonth
quarterly, quarter, qquarter
yearly, year, yyear
tostringOptionalEnd date for historical data (ISO 8601 format). If not provided, returns data up to the latest available.
fromstringOptionalStart date for historical data (ISO 8601 format). Automatically clamped by the system if too far in the past.

Examples:

https://api.axionquant.com/etfs/SPY/prices
https://api.axionquant.com/etfs/QQQ/prices?frame=monthly&from=2024-01-01&to=2024-12-31

Response Fields

time string

ISO 8601 timestamp of the data point

ticker string

ETF ticker symbol

open string

Opening price (decimal string)

high string

Highest price during the period

low string

Lowest price during the period

close string

Closing price

volume string

Number of shares traded

|

Historical ETF Prices

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4prices = client.etfs.prices('SPY',
5    frame='daily',
6    from_date='2025-12-01',
7    to_date='2025-12-19'
8)
9print(prices)

Response (Daily Frame)

[
  {
    "time": "2025-12-19T19:03:05.000Z",
    "ticker": "SPY",
    "open": "500.1200",
    "high": "502.5600",
    "low": "499.7800",
    "close": "501.3400",
    "volume": "45000000"
  },
  {
    "time": "2025-12-18T14:30:00.000Z",
    "ticker": "SPY",
    "open": "498.4500",
    "high": "501.2300",
    "low": "497.8000",
    "close": "500.1000",
    "volume": "42000000"
  }
]
GET/etfs/list/market

Retrieves all unique market values available in the etfs universe. Filter by market region (e.g., "america", "europe").

Examples:

https://api.axionquant.com/etfs/list/market
|

List by Market

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('market')
5print(values)

Response

[
  "america",
  "australia",
  "canada",
  "china",
  "germany",
  "hongkong",
  "india",
  "japan",
  "korea",
  "ksa",
  "mexico",
  "singapore",
  "uk"
]
GET/etfs/list/country

Retrieves all unique country values available in the etfs universe. Filter by country name or code.

Examples:

https://api.axionquant.com/etfs/list/country
|

List by Country

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('country')
5print(values)

Response

[
  "Aland Islands",
  "Anguilla",
  "Argentina",
  "Australia",
  "Austria",
  "Azerbaijan",
  "Bahamas",
  "Bahrain",
  "Bangladesh",
  "Barbados",
  "Belgium",
  "Bermuda",
  "Brazil",
  "British Virgin Islands",
  "Bulgaria",
  "Cambodia",
  "Cameroon",
  "Canada",
  "Cayman Islands",
  "Chile",
  "China",
  "Colombia",
  "Cyprus",
  "Czech Republic",
  "Denmark",
  "Dominican Republic",
  "Egypt",
  "El Salvador",
  "Estonia",
  "Faroe Islands",
  "Finland",
  "France",
  "Gabon",
  "Germany",
  "Gibraltar",
  "Greece",
  "Hong Kong",
  "Hungary",
  "Iceland",
  "India",
  "Indonesia",
  "Ireland",
  "Israel",
  "Italy",
  "Japan",
  "Jordan",
  "Kazakhstan",
  "Kenya",
  "La Reunion",
  "Liberia",
  "Liechtenstein",
  "Lithuania",
  "Luxembourg",
  "Macau",
  "Macedonia",
  "Malaysia",
  "Malta",
  "Mauritius",
  "Mexico",
  "Monaco",
  "Mongolia",
  "Morocco",
  "Mozambique",
  "Netherlands",
  "New Zealand",
  "Nigeria",
  "Norway",
  "Oman",
  "Pakistan",
  "Panama",
  "Papua New Guinea",
  "Peru",
  "Philippines",
  "Poland",
  "Portugal",
  "Puerto Rico",
  "Qatar",
  "Romania",
  "Russian Federation",
  "Saudi Arabia",
  "Singapore",
  "Slovenia",
  "South Africa",
  "South Korea",
  "Spain",
  "Sweden",
  "Switzerland",
  "Taiwan",
  "Tanzania",
  "Thailand",
  "Turkey",
  "Ukraine",
  "United Arab Emirates",
  "United Kingdom",
  "United States",
  "Uruguay",
  "Uzbekistan",
  "Vietnam",
  "Zambia",
]
GET/etfs/list/currency

Retrieves all unique currency values available in the etfs universe. Filter by trading currency.

Examples:

https://api.axionquant.com/etfs/list/currency
|

List by Currency

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('currency')
5print(values)

Response

[
  "AUD",
  "CAD",
  "CHF",
  "CNY",
  "DKK",
  "EUR",
  "GBP",
  "GBX",
  "HKD",
  "HUF",
  "INR",
  "JPY",
  "KRW",
  "MXN",
  "NOK",
  "NZD",
  "PLN",
  "SAR",
  "SEK",
  "SGD",
  "USD"
]
GET/etfs/list/sector

Retrieves all unique sector values available in the etfs universe. Filter by sector classification.

Examples:

https://api.axionquant.com/etfs/list/sector
|

List by Sector

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('sector')
5print(values)

Response

[
  "Commercial Services",
  "Communications",
  "Consumer Durables",
  "Consumer Non-Durables",
  "Consumer Services",
  "Distribution Services",
  "Electronic Technology",
  "Energy Minerals",
  "Finance",
  "Government",
  "Health Services",
  "Health Technology",
  "Industrial Services",
  "Miscellaneous",
  "N/A",
  "Non-Energy Minerals",
  "Process Industries",
  "Producer Manufacturing",
  "Retail Trade",
  "Technology Services",
  "Transportation",
  "Utilities"
]
GET/etfs/list/industry

Retrieves all unique industry values available in the etfs universe. Filter by industry classification.

Examples:

https://api.axionquant.com/etfs/list/industry
|

List by Industry

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('industry')
5print(values)

Response

[
  "Advertising/Marketing Services",
  "Aerospace & Defense",
  "Agricultural Commodities/Milling",
  "Air Freight/Couriers",
  "Airlines",
  "Alternative Power Generation",
  "Aluminum",
  "Apparel/Footwear",
  "Apparel/Footwear Retail",
  "Auto Parts: OEM",
  "Automotive Aftermarket",
  "Beverages: Alcoholic",
  "Beverages: Non-Alcoholic",
  "Biotechnology",
  "Broadcasting",
  "Building Products",
  "Cable/Satellite TV",
  "Casinos/Gaming",
  "Catalog/Specialty Distribution",
  "Chemicals: Agricultural",
  "Chemicals: Major Diversified",
  "Chemicals: Specialty",
  "Coal",
  "Commercial Printing/Forms",
  "Computer Communications",
  "Computer Peripherals",
  "Computer Processing Hardware",
  "Construction Materials",
  "Consumer Sundries",
  "Containers/Packaging",
  "Contract Drilling",
  "Data Processing Services",
  "Department Stores",
  "Discount Stores",
  "Drugstore Chains",
  "Electric Utilities",
  "Electrical Products",
  "Electronic Components",
  "Electronic Equipment/Instruments",
  "Electronic Production Equipment",
  "Electronics Distributors",
  "Electronics/Appliance Stores",
  "Electronics/Appliances",
  "Engineering & Construction",
  "Environmental Services",
  "Finance/Rental/Leasing",
  "Financial Conglomerates",
  "Financial Publishing/Services",
  "Food Distributors",
  "Food Retail",
  "Food: Major Diversified",
  "Food: Meat/Fish/Dairy",
  "Food: Specialty/Candy",
  "Forest Products",
  "Gas Distributors",
  "General Government",
  "Home Furnishings",
  "Home Improvement Chains",
  "Homebuilding",
  "Hospital/Nursing Management",
  "Hotels/Resorts/Cruise lines",
  "Household/Personal Care",
  "Industrial Conglomerates",
  "Industrial Machinery",
  "Industrial Specialties",
  "Information Technology Services",
  "Insurance Brokers/Services",
  "Integrated Oil",
  "Internet Retail",
  "Internet Software/Services",
  "Investment Banks/Brokers",
  "Investment Managers",
  "Investment Trusts/Mutual Funds",
  "Life/Health Insurance",
  "Major Banks",
  "Major Telecommunications",
  "Managed Health Care",
  "Marine Shipping",
  "Media Conglomerates",
  "Medical Distributors",
  "Medical Specialties",
  "Medical/Nursing Services",
  "Metal Fabrication",
  "Miscellaneous",
  "Miscellaneous Commercial Services",
  "Miscellaneous Manufacturing",
  "Motor Vehicles",
  "Movies/Entertainment",
  "Multi-Line Insurance",
  "N/A",
  "Office Equipment/Supplies",
  "Oil & Gas Pipelines",
  "Oil & Gas Production",
  "Oil Refining/Marketing",
  "Oilfield Services/Equipment",
  "Other Consumer Services",
  "Other Consumer Specialties",
  "Other Metals/Minerals",
  "Other Transportation",
  "Packaged Software",
  "Personnel Services",
  "Pharmaceuticals: Generic",
  "Pharmaceuticals: Major",
  "Pharmaceuticals: Other",
  "Precious Metals",
  "Property/Casualty Insurance",
  "Publishing: Books/Magazines",
  "Publishing: Newspapers",
  "Pulp & Paper",
  "Railroads",
  "Real Estate Development",
  "Real Estate Investment Trusts",
  "Recreational Products",
  "Regional Banks",
  "Restaurants",
  "Savings Banks",
  "Semiconductors",
  "Services to the Health Industry",
  "Sovereign",
  "Specialty Insurance",
  "Specialty Stores",
  "Specialty Telecommunications",
  "Steel",
  "Telecommunications Equipment",
  "Textiles",
  "Tobacco",
  "Tools & Hardware",
  "Trucking",
  "Trucks/Construction/Farm Machinery",
  "Water Utilities",
  "Wholesale Distributors",
  "Wireless Telecommunications"
]
GET/etfs/list/type

Retrieves all unique type values available in the etfs universe. Filter by security type.

Examples:

https://api.axionquant.com/etfs/list/type
|

List by Type

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('type')
5print(values)

Response

[
  "closedend fund",
  "common stock",
  "dr",
  "etf fund",
  "mutual fund",
  "preferred stock",
  "reit fund",
  "structured",
  "unit fund"
]
GET/etfs/list/exchange

Retrieves all unique exchange values available in the etfs universe. Filter by exchange code.

Examples:

https://api.axionquant.com/etfs/list/exchange
|

List by Exchange

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4values = client.etfs.list('exchange')
5print(values)

Response

[
  "AMEX",
  "AQUIS",
  "ASX",
  "BIVA",
  "BMV",
  "BSE",
  "CBOE",
  "CSE",
  "DUS",
  "FSE",
  "FWB",
  "HAM",
  "HAN",
  "HKEX",
  "KRX",
  "LSE",
  "LSIN",
  "MUN",
  "NAG",
  "NASDAQ",
  "NEO",
  "NSE",
  "NYSE",
  "OTC",
  "SAPSE",
  "SGX",
  "SSE",
  "SWB",
  "SZSE",
  "TADAWUL",
  "TSE",
  "TSX",
  "TSXV",
  "XETR"
]

Crypto API

The Crypto API provides comprehensive cryptocurrency market data including ticker information and historical price data. This API supports multiple time frame aggregations and is essential for cryptocurrency analysis, trading strategies, and portfolio management.

GET/crypto/tickers

Retrieves a comprehensive list of all available cryptocurrency tickers. This endpoint supports optional filtering by cryptocurrency type and returns essential metadata for each cryptocurrency including its full name and classification.

Query Parameters

ParameterTypeRequiredDescription
typestringOptional

Filter tickers by cryptocurrency type. Valid values:

spotfuturesperpetual

Examples:

https://api.axionquant.com/crypto/tickers
https://api.axionquant.com/crypto/tickers?exchange=COINBASE

Response Fields

id number

Unique identifier for the cryptocurrency

ticker string

Ticker symbol (e.g., "BTC", "ETH")

name string

Full name of the cryptocurrency

type string

Type classification (spot, futures, perpetual)

category string

Category classification (e.g., cryptocurrencies, smart contract platforms, stablecoins)

|

All Tickers

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4tickers = client.crypto.tickers(type='spot')
5print(tickers)

Response

[
  {
    "id": 1,
    "ticker": "BTC",
    "name": "Bitcoin",
    "type": "spot",
    "category": "cryptocurrencies"
  },
  {
    "id": 2,
    "ticker": "ETH",
    "name": "Ethereum",
    "type": "spot",
    "category": "smart contract platforms"
  },
  {
    "id": 3,
    "ticker": "USDT",
    "name": "Tether USDt",
    "type": "spot",
    "category": "stablecoins"
  },
  {
    "id": 4,
    "ticker": "BNB",
    "name": "BNB",
    "type": "spot",
    "category": "smart contract platforms"
  },
  {
    "id": 5,
    "ticker": "USDC",
    "name": "USDC",
    "type": "spot",
    "category": "stablecoins"
  }
]
GET/crypto/gainers

Retrieves the top gaining cryptocurrencies over a specified lookback period. Returns ticker symbols with their percentage change, sorted from highest gainer to lowest. Useful for identifying momentum in the crypto market.

Query Parameters

ParameterTypeRequiredDescription
daysintegerOptionalLookback period in days (default: 5)
limitintegerOptionalMaximum number of results to return (default: 10)

Examples:

https://api.axionquant.com/crypto/gainers
https://api.axionquant.com/crypto/gainers?days=30&limit=20

Response Fields

ticker string

Cryptocurrency ticker symbol

pctchange number

Percentage change over the lookback period

|

Crypto Gainers

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4gainers = client.crypto.gainers(days=5, limit=10)
5print(gainers)

Response

[
  {
    "ticker": "VANA",
    "pctchange": 24077102.262329
  },
  {
    "ticker": "LUNA",
    "pctchange": 29965.2941892873
  },
  {
    "ticker": "SPACE",
    "pctchange": 27397.3324788449
  }
]
GET/crypto/losers

Retrieves the top losing cryptocurrencies over a specified lookback period. Returns ticker symbols with their percentage change, sorted from most negative to least negative. Useful for identifying weakness in the crypto market.

Query Parameters

ParameterTypeRequiredDescription
daysintegerOptionalLookback period in days (default: 5)
limitintegerOptionalMaximum number of results to return (default: 10)

Examples:

https://api.axionquant.com/crypto/losers
https://api.axionquant.com/crypto/losers?days=30&limit=20

Response Fields

ticker string

Cryptocurrency ticker symbol

pctchange number

Percentage change over the lookback period

|

Crypto Losers

Request

Sample code
1from axion import Axion
2client = Axion(api_key='axn_123')
3
4losers = client.crypto.losers(days=5, limit=10)
5print(losers)

Response

[
  {
    "ticker": "ZYPTO",
    "pctchange": -100
  },
  {
    "ticker": "3ULL",
    "pctchange": -82.1428578389002
  },
  {
    "ticker": "ARCA",
    "pctchange": -82.0354057891293
  }
]