Skip to main content

tidata

⚠️ Deprecated — the API behind this package is closed

The TradeInsight beta data API that tidata calls stopped answering at 23:59 UTC on 2 September 2026. Every request now returns 410 Gone, and no key will work again — the beta credential pool is switched off, and beta signup is closed, so a new key cannot be issued either.

Key holders were emailed on 26 August 2026. There is nothing to migrate to that keeps this package working.

Nothing in this package can be made to work. It has no unauthenticated mode: without a key it never sent an Authorization header, and the server refused the call.

Where the data went: TradeInsight Desk — the same congressional, insider and price data, reached through an agent rather than a raw API.

If you are reading this from a failing script, the error you want is tidata.tifinance.exceptions.APIClosedError (code API_CLOSED), raised in place of the auth error the 410 would otherwise look like.


The rest of this README is kept for anyone reading old code. It no longer describes anything that runs.

Provides a Ticker class with a history() method that returns a pandas DataFrame with yfinance-compatible column names.

Installation

pip install tidata

Or install from source:

git clone https://github.com/TradeInsight-Info/tidata.git
cd tidata
pip install -e .

Quick Start

Set your API key in the environment — keys are no longer issued and existing ones are rejected. The snippet below is what the client used to do:

from tidata.tifinance import Ticker

# API key is read from TIDATA_API_KEY env var automatically
t = Ticker("AAPL")

# Adjusted prices (yfinance-compatible)
df = t.history(start="2024-01-01", end="2024-12-31")
print(df.head())
#                  Open        High         Low       Close      Volume  Dividends  Stock Splits
# Date
# 2024-01-02  184.210...  185.880...  183.430...  185.200...  79047200.0        0.0           0.0

# Raw (unadjusted) prices — adds an "Adj Close" column, like yfinance
df_raw = t.history(start="2024-01-01", end="2024-12-31", auto_adjust=False)

yfinance drop-in

Ticker.history() mirrors yfinance for the daily-OHLCV case:

from tidata.tifinance import Ticker, download

# period shorthands: 1d 5d 1mo 3mo 6mo 1y 2y 5y 10y ytd max
df = Ticker("AAPL").history(period="1y")

# non-zero dividends / splits over full available history (period="max")
divs = Ticker("AAPL").dividends
spl = Ticker("AAPL").splits

# bulk download — flat frame for one ticker, column MultiIndex for many
one = download("AAPL", period="6mo")
many = download("AAPL MSFT", period="6mo")   # columns: (field, ticker)

Behaviour notes

  • On API errors, history() logs a warning and returns an empty DataFrame (yfinance behaviour). Pass raise_errors=True to raise the typed exception instead.
  • period="max" requests full available history (from a 1900-01-01 floor), not a fixed window.
  • Only interval="1d" is currently supported.
  • The index is a tz-naive DatetimeIndex named Date.

Configuration

Parameter Description Default
symbol Ticker symbol (e.g. "AAPL") required
api_key API key — also reads TIDATA_API_KEY env var None
base_url API base URL https://api.tradeinsight.info/trading-data/v1
timeout HTTP timeout in seconds 30

Exceptions

Exception API error code
TickerNotFoundError TICKER_NOT_FOUND, INVALID_TICKER
AuthenticationError UNAUTHORIZED, INVALID_API_KEY, API_KEY_REQUIRED
RateLimitError RATE_LIMIT_EXCEEDED, TOO_MANY_REQUESTS
InvalidParameterError TICKER_REQUIRED, INVALID_DATE, INVALID_PARAMETER
APIError Any other error code (base class)

All exceptions inherit from APIError which exposes .code and .message.

License

MIT

Metadata

Release files for tidata 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tidata 0.3.0
File Size Uploaded
tidata-0.3.0.tar.gz 17.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tidata 0.3.0
File Interpreter ABI Platform
tidata-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.2 kB

Release files / tidata-0.3.0.tar.gz

Download URL tidata-0.3.0.tar.gz
Size 17.3 kB
Tags Source
SHA-256 checksum
How to use checksums
07d92c749fb94b7f4b5844bd17240c99891e59a0b4f84a439f66699cf131ce11
BLAKE2b-256 checksum
How to use checksums
7eda94d47fa468162fb9d2ef8d59a29e79bcecbdc03850563e495f3720301eda
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / tidata-0.3.0-py3-none-any.whl

Download URL tidata-0.3.0-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
868b2bc5457c6eca99d5a7226552278cf4b2ed61f797ba269e75edb764c0af99
BLAKE2b-256 checksum
How to use checksums
269fc5c3b6496c2a5f71bf8d0b3ee8a6aa88881919e1ae16e9c2cb69f2e66f53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page