---
name: tiingo-ingestion
description: "How to get Tiingo data into a pandas DataFrame in memory (the provider's terms limit storage or leave it unclear): access, the request, the format, limits, quirks and terms."
---

# Analyze Tiingo end-of-day prices in memory on the Starter plan

Source entry: https://signal-lab-jet.vercel.app/datasets/tiingo
Provider: https://www.tiingo.com
Checked against the provider's documentation: 2026-10-29

## Access
- A Starter account and API token are required. Put the token in TIINGO_API_KEY.
- Starter data may be processed only in volatile memory or a temporary non-persistent cache.

## Request
```bash
curl -H 'Authorization: Token '$TIINGO_API_KEY 'https://api.tiingo.com/tiingo/daily/AAPL/prices?startDate=2026-10-01&endDate=2026-10-29'
```

## Format
JSON array with date, OHLC, volume, adjusted OHLC and adjusted volume fields.

## Load into pandas (in memory)
Needs Python 3 with requests and pandas. The provider's terms limit storage or leave it unclear, so this snippet does not write a file.
```python
"""Tiingo Starter end-of-day prices -> pandas in memory. Do not persist Starter data."""
import os
import requests
import pandas as pd

headers = {"Authorization": f"Token {os.environ['TIINGO_API_KEY']}"}
params = {"startDate": "2026-10-01", "endDate": "2026-10-29"}
r = requests.get("https://api.tiingo.com/tiingo/daily/AAPL/prices",
                 headers=headers, params=params, timeout=30)
r.raise_for_status()
df = pd.DataFrame(r.json())
df["date"] = pd.to_datetime(df["date"], utc=True)
print(len(df), "rows", df["date"].min().date(), "to", df["date"].max().date())
del df  # Starter terms require deletion before this process, job or session ends
```
Needs a personal API key; not run.

## Limits
- Starter: 50 requests per hour, 1,000 requests per day, 500 unique symbols per month and 1 GB per month.

## Quirks
- The snippet intentionally writes no file.
- Delete the response and derived results before the process, job or session ends.
- Dates are ISO timestamps; parse them as UTC.

## Terms and attribution
- Starter and trial users may not retain Tiingo data or derived products in persistent or durable storage.
- API data is for internal consumption; organizational use requires a commercial plan.
- Redistribution requires permission and additional fees.
- Terms page: https://app.tiingo.com/tos/

## Sources
- https://app.tiingo.com/tos/: "you may not write, save, archive, back up, or otherwise retain Tiingo Data in any persistent or durable storage"
- https://app.tiingo.com/tos/: "only transiently in volatile memory or in a temporary, non-persistent cache"
- https://app.tiingo.com/tos/: "All data via the API is for internal consumption only"

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
