TMX APImoney.tmx.com ↗
Access TSX stock quotes, historical OHLCV data, market indices, news, and curated stocklists from TMX Money via 7 structured JSON endpoints.
What is the TMX API?
The TMX Money API provides 7 endpoints covering Toronto Stock Exchange equities, Canadian market indices, futures, commodities, and curated stocklists. Use get_stock_overview to retrieve fundamentals like P/E ratio, market cap, dividend yield, and company description for any TSX-listed ticker, or call get_market_activity for a real-time snapshot of S&P 500, NASDAQ, NYSE indices, bond futures, and the top 50 stocks by volume on the TSX.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/a7cba35d-3b41-460e-8d8e-6c231bbe29b8/get_market_activity' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace money-tmx-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""TMX Money API - Walkthrough: market data, stock lookup, news, and search."""
from parse_apis.tmx_money_api import TMXMoney, Interval, StockNotFound
client = TMXMoney()
# Get current market snapshot: indices, futures, commodities, top movers
market = client.marketactivities.get()
for mover in market.getMarketMovers[:3]:
print(mover.symbol, mover.name, mover.price, mover.volume)
# Fetch a stock by symbol and read its fundamentals
stock = client.stocks.get(symbol="RY")
print(stock.name, stock.price, stock.sector, stock.dividendYield)
# Get price history for the stock with 30-min intervals
for point in stock.price_history(interval=Interval.THIRTY_MIN, limit=5):
print(point.dateTime, point.open, point.close, point.volume)
# Get recent news for the stock
for article in stock.news(limit=3):
print(article.headline, article.source)
# Handle a not-found symbol gracefully
try:
client.stocks.get(symbol="ZZZZZ")
except StockNotFound as exc:
print(f"Symbol not found: {exc.symbol}")
# List all curated stocklists
for sl in client.stocklists.list(limit=5):
print(sl.stockListId, sl.itemCount)
print("exercised: marketactivities.get / stocks.get / price_history / news / stocklists.list / StockNotFound")
Get general market activity including indices, futures, commodities and market movers (top volume stocks on TSX). Returns data for S&P 500, NASDAQ, NYSE indices, Canadian bond futures, commodity prices, and the top 50 stocks by volume. No parameters required — returns a snapshot of current market state.
No input parameters required.
{
"type": "object",
"fields": {
"futures": "array of futures quote objects with symbol, price, priceChange, percentChange",
"commodities": "array of commodity quote objects with symbol, shortName, price, priceChange, percentChange",
"marketActivity": "array of index quote objects with symbol, price, volume, priceChange, percentChange",
"getMarketMovers": "array of top volume stock objects with symbol, name, price, volume, priceChange, percentChange"
},
"sample": {
"data": {
"futures": [
{
"price": 97.73,
"symbol": "/COA",
"__typename": "Quote",
"priceChange": 0.005,
"percentChange": 0.005116
}
],
"commodities": [
{
"price": 91.74,
"symbol": "/CL:NMX",
"shortName": "NYMEX Crude Oil",
"__typename": "Quote",
"priceChange": 1.71,
"percentChange": 1.899367
}
],
"marketActivity": [
{
"price": null,
"symbol": "^SPX:US",
"volume": null,
"currency": "USD",
"exchange": "CGIF Main",
"longname": "S&P 500 INDEX",
"__typename": "Quote",
"priceChange": null,
"percentChange": null
}
],
"getMarketMovers": [
{
"name": "Canadian Natural Resources Limited",
"price": 63.59,
"symbol": "CNQ",
"volume": 16981917,
"__typename": "MarketMover",
"priceChange": 1.21,
"exchangeCode": "TSX",
"exchangeName": "Toronto Stock Exchange",
"percentChange": 1.939724
}
]
},
"status": "success"
}
}About the TMX API
Market Data and Indices
get_market_activity returns four data groups in a single call: an array of futures quotes (symbol, price, priceChange, percentChange), commodity prices with shortName, an index activity array covering S&P 500, NASDAQ, and NYSE, and a getMarketMovers array listing the top 50 TSX stocks by volume with price and percent change. No input parameters are required.
Stock Fundamentals and Price History
get_stock_overview accepts a TSX ticker symbol (e.g. RY, ENB, BMO) and returns fields including peRatio, MarketCap, dividendYield, sector, industry, and a longDescription narrative. For time-series data, get_stock_price_history returns OHLCV records over the last 30 days. The optional interval parameter accepts values of 1, 5, 10, 30, or 60 minutes, letting you control data granularity. Each record includes dateTime as an ISO string with timezone offset.
News, Search, and Stocklists
get_stock_news returns up to 20 recent articles per ticker, each with headline, summary, source, datetime, and a unique newsid. search_securities accepts a keyword and returns matched company tickers, stocklists, and news items alongside metadata with total result count and query correction suggestions. get_all_stocklists enumerates every curated list on TMX Money (TOP_DIVIDEND, TOP_VOLUME, RISING_STARS, and others) with item counts and stockListId identifiers. get_graduated_companies_search surfaces exchange graduation announcements for companies that have uplisted from TSXV to TSX.
The TMX API is a managed, monitored endpoint for money.tmx.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when money.tmx.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official money.tmx.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Screen TSX stocks by dividend yield and market cap using get_stock_overview response fields
- Monitor intraday price movements with 1-minute OHLCV bars from get_stock_price_history
- Track the top 50 TSX volume leaders daily via the getMarketMovers array in get_market_activity
- Build a Canadian equities news feed by polling get_stock_news for a portfolio of tickers
- Detect exchange graduation events (TSXV to TSX uplistings) with get_graduated_companies_search
- Populate a sector watchlist by querying search_securities for keywords like 'energy' or 'bank'
- Display curated thematic stocklists (rising stars, crypto funds, recent listings) using get_all_stocklists
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.