Skip to main content

Unified ticker price data from Yahoo Finance, CoinGecko, and TradingView.

Project description

ticker-price-data

Unified ticker price data from Yahoo Finance (stocks/indices/forex/futures), CoinGecko (crypto), and TradingView (universal fallback).

One normalized quote shape for every asset, with sensible fallbacks and built-in caching.

Key Features 🔑

  • get_price(ticker, asset_type) — single entry point; asset_type="auto" uses ticker-classifier to decide stock vs crypto vs forex automatically.
  • get_ticker(ticker) — everything known about a symbol in one call: classification metadata (sector, industry, market cap, company profile, ...) plus the live quote, classifying only once.
  • get_stock_info(ticker) — Yahoo Finance, with a TradingView fallback.
  • get_crypto_info(ticker) — CoinGecko via the website search_v2 endpoint (avoids the public API's free-tier rate limits), with Yahoo → TradingView fallbacks.
  • get_tradingview_quote(symbol, asset_hint) — realtime websocket pool + scraper fallback.
  • In-memory caching, stale/negative caching, and concurrency limits built in.
  • Pre-market and after-hours data where available.

All helpers return Optional[dict]:

{
    "price": float,
    "change_percent": float,
    "volume": float,
    "website": str,
    "source": str,                      # "yahoo" | "coingecko" | "tradingview"
    # stocks only:
    "last_close": float | None,         # previous day's regular-session close
    "session": str,                     # "regular" | "pre-market" | "after-hours" | "closed"
    "extended_price": float,            # pre/after-hours price (omitted when session == "regular")
    "extended_change_percent": float,   # (extended_price − price) / price × 100 (omitted when session == "regular")
}

extended_price and extended_change_percent persist from the end of after-hours (8 pm ET) through weekends and holidays until pre-market opens (4 am ET) on the next trading day.

Installation ⚙️

pip install ticker-price-data

or, for local development:

pip install -e .

Usage ⌨️

import asyncio
from ticker_price_data import get_price, get_ticker, get_stock_info, get_crypto_info

async def main():
    print(await get_stock_info("AAPL"))     # Yahoo
    print(await get_crypto_info("BTC"))     # CoinGecko
    print(await get_price("BTC", "auto"))   # classified automatically
    print(await get_ticker("AAPL"))         # metadata (sector, industry, ...) + quote

asyncio.run(main())

License 📜

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

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

Source Distribution

ticker_price_data-0.1.2.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

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

ticker_price_data-0.1.2-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file ticker_price_data-0.1.2.tar.gz.

File metadata

  • Download URL: ticker_price_data-0.1.2.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ticker_price_data-0.1.2.tar.gz
Algorithm Hash digest
SHA256 091cced0e7124361c20a9a97884b6baa7be2ffbf72c7158db4d1fe6a2ee55cf3
MD5 fc065351c48258a65a8482b0a375e3c2
BLAKE2b-256 5ee92394f52d9c9295478460a2474c80c4380309513f862888c3f6c02582564c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ticker_price_data-0.1.2.tar.gz:

Publisher: publish.yml on StephanAkkerman/ticker-price-data

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ticker_price_data-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ticker_price_data-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cfefbe4b70fc608205f8bf28cb5b1cbaba6f9c49c0e23cfb85011471f9a19a36
MD5 abb0064e3163a07da1c2fde9fda901fb
BLAKE2b-256 43eb42ae47641015cd87ab7cca8741af4be23ea1376163b9a5e52681b2c497d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ticker_price_data-0.1.2-py3-none-any.whl:

Publisher: publish.yml on StephanAkkerman/ticker-price-data

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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