Concepts
For agents
The rules an agent follows with this data, and every file an agent can fetch.
This API was built to be read by agents as much as by people. Everything on this site exists as plain text an agent can fetch, the MCP server signs a person in through the browser so an agent never handles a key, a demo server connects with nothing so an agent can show the data before anyone signs up, and every error says what to do next. In return, an agent that presents this data follows five rules.
The rules
- Never present a win rate alone. Every track record carries a
summarysentence with the sample size, the win rate, the average win and the average loss. Quote it whole. "54% win rate" without "average loss -4.2%, 1,287 trades" is the misuse this data exists to prevent. - Say which session the data describes. Every response carries
as_of_session, the last trading day the nightly build covered. Setups change nightly; do not cache an answer across days. - Lines are two dated endpoints on a log-scale chart. Draw a straight line from
starttoendwith the price axis in log scale. There is no slope field on purpose. - This is educational chart analysis, not advice. Repeat the
disclaimerfrom the envelope when presenting a setup as something the user might act on. - Tracked tickers are the unit. Pattern, history and chart calls work only on tickers the account tracks. When a call fails with
ticker_not_tracked, add the ticker (the error'sfixsays how) and retry.
What an agent should fetch
| File | URL | Use it for |
|---|---|---|
| Index of this documentation | https://tradingpal.io/developers/llms.txt | The list of every page here, with one line each, plus the rules above. Start here. |
| The whole documentation | https://tradingpal.io/developers/llms-full.txt | Every page in one file, for a host that reads one document. |
| Any single page | https://tradingpal.io/developers/<page>.md | This page is https://tradingpal.io/developers/agents.md. |
| Compact reference | https://api.tradingpal.io/api/v1/llms.txt | The API in one markdown file, written for agents: routes, tools, shapes and the rules. |
| Installable skill | https://api.tradingpal.io/api/v1/skill.md | The same reference with SKILL.md frontmatter, for hosts that install skills. |
| OpenAPI 3.1 | https://api.tradingpal.io/api/v1/openapi.json | Every route and shape, machine-readable; the reference pages here are generated from it. |
| Machine index | https://api.tradingpal.io/api/v1/ | JSON with the addresses of all of the above and the MCP server. |
| Sign-in metadata | https://api.tradingpal.io/.well-known/oauth-authorization-server | The OAuth 2.1 endpoints an MCP host uses; the 401 from https://api.tradingpal.io/mcp points here. |
| Keyless demo server | https://api.tradingpal.io/mcp/demo | The MCP server with no account: demo and get_family_track_record answer. |
The prompt to hand a person
Give a person one line to paste into their agent, and the agent sets itself up:
Set up TradingPal pattern access for me: fetch https://tradingpal.io/developers/llms.txt and follow it.
Add the MCP server and tell me when I need to sign in; if TRADINGPAL_API_KEY is set, use that instead.
Then tell me what is setting up on my tracked tickers.The prompt points at a URL instead of carrying the instructions, so it never goes stale, and it ends with a first task so the agent proves the connection in the same turn.
Presenting a setup
The sentence a person wants, with every part traceable to a field:
NVDA has a bullish falling wedge forming as of 2026-09-25 (
family_label,direction,status,as_of_session). It triggers on a daily close above 105.25, last close 101.50 (trigger_rule,plans[0].trigger_price,last_close), with a stop at 96.00 and a target at 120.00 (stop_price,target_price). Falling wedges have resolved 1,287 times since 2006: 54% reached the target, average win +8.1%, average loss -4.2% (track_record.family.summary). Educational chart analysis, not advice (disclaimer).
The chart is chart.png with the setup's setup_id, or the two lines drawn from their endpoints on a log-scale chart.
Presenting nothing
available: false with reason: "not_covered" means the ticker is tracked but the nightly build does not include it; say so rather than reporting "no patterns". An empty setups array on a covered ticker means nothing is forming as of that session, which is a real answer worth giving with the date.
Tool errors on the MCP server
A keyed tool called without a key, or on an untracked ticker, returns a tool error whose text starts with the error code and ends with the fix, for example ticker_not_tracked: NVDA is not one of the tickers this account tracks. Add it with set_tracked_tickers, then retry. Follow the fix; do not retry the same call unchanged.
Open any page in an agent
Every page here has "Copy as Markdown" and "Open in Claude" at the top. The first copies the page's markdown; the second opens a conversation with a prompt that reads the page's .md address. The same works for any host that accepts a URL in a prompt.