# Technical Analysis API - Indicators, Charts & PDF/Web Reports

Open, no-auth HTTP API and MCP server that generates a technical-analysis report for any Yahoo Finance symbol - EMAs, MACD, RSI and Bollinger Bands on daily and weekly timeframes, charted and interpreted by Google Gemini Vision, delivered as professional PDF and HTML reports. Built for AI agents first, humans second: every page here has a Copy-as-Markdown button so you can hand it straight to your agent.

Kind: REST / HTTP API, MCP Server (AI agents), Analytics API, Open - no auth
Base URL: https://ta.tigzig.com
Docs: https://ta.tigzig.com/docs  ·  OpenAPI: https://ta.tigzig.com/openapi.json
Full page: https://www.tigzig.com/apis/technical-analysis

> AI agents: this API is open (no auth). Start with the OpenAPI spec for this API: https://ta.tigzig.com/openapi.json (the authoritative contract for every endpoint below). The RFC 9727 catalog at https://api.tigzig.com/.well-known/api-catalog is a site-level directory of all TigZig APIs - go there only if you want a different API, not for more detail on this one.

## Quick start

- MCP server (for AI agents): https://ta.tigzig.com/mcp - Streamable HTTP, add as a custom connector (Claude.ai / ChatGPT / Cursor / n8n)
- REST API (base URL): https://ta.tigzig.com/v1
- Live tool (Form): Quants Suite - https://www.tigzig.com/portfolio-analysis-suite - Pick a symbol, get the charts and the report from a form.
- Live tool (Agent chat): QDesk - https://www.tigzig.com/qdesk - Ask in chat. The agent runs the same analysis and hands back the report.

## Documentation

For people - the full reference: https://ta.tigzig.com/redoc
Every endpoint, every field, and every enforced limit with the message you get when you cross it. Rendered from the running service, so it is never a copy that can fall behind.

For AI agents - the machine contract: https://ta.tigzig.com/openapi.json
The site-wide directory of every TigZig API is the RFC 9727 catalog at https://api.tigzig.com/.well-known/api-catalog

## What you can call

1 endpoint. Request bodies, every field and every enforced limit are in the full reference: https://ta.tigzig.com/redoc

- POST /v1/technical-analysis - Create Technical Analysis

## Overview

A technical-analysis report generator over Yahoo Finance price data. Give it a symbol and it fetches daily + weekly history, computes EMAs, MACD, RSI and Bollinger Bands, charts them, has Google Gemini Vision interpret the charts in plain English, and returns a professional PDF + HTML report. Three ways in:
- REST - POST /v1/technical-analysis for any HTTP client.
- MCP - the same report as an agent tool call (see below).
- Hosted UIs - a chat agent (https://rex.tigzig.com/n8n-tech-analysis), a web form, and an Excel (xlwings Lite) front-end.

Connect the MCP server below to generate reports as a tool call.

Price data comes from the companion Yahoo Finance API (/apis/yahoo-finance). PDF rendering by the Markdown to PDF service (/markdown-to-pdf).

## MCP Server (for AI agents)

Connect an AI agent and let it generate a technical-analysis report. No auth. One endpoint:
- https://ta.tigzig.com/mcp - Streamable HTTP, the recommended transport (MCP 2025-03-26).

Example prompt: "Analyze MSFT with RSI, MACD and Bollinger Bands for the past 6 months and give me a PDF report."
Add to Claude.ai: Settings -> Connectors -> Add custom connector -> paste the Streamable HTTP URL -> approve. Same URL works for Cursor, n8n, any MCP client.

## How it works

- Data - daily + weekly price history from the Yahoo Finance FastAPI service (yfin-h.tigzig.com).
- Indicators - EMAs, MACD, RSI, Bollinger Bands; custom charts per timeframe.
- Interpretation - the charts are read by a vision model, which turns them into plain-English commentary. You choose the model (see below).
- Output - Markdown converted to PDF + HTML via the ReportLab service.
- FastAPI + fastapi-mcp, Flask web UI, deployed on Coolify (Hetzner) behind Cloudflare.

### Choosing a model

The optional "model" parameter picks which vision model reads the charts. OMIT IT AND YOU GET THE DEFAULT, which is the right call for most callers. Currently accepted, cheapest first:

- google/gemini-2.5-flash-lite
- openai/gpt-5.6-luna
- google/gemini-3.1-flash-lite
- google/gemini-3-flash-preview
- anthropic/claude-haiku-4.5
- openai/gpt-5.6-terra
- anthropic/claude-sonnet-5

This list changes as models are added and retired, and a retired value returns a 400. The authoritative list is the "model" parameter description in the live OpenAPI spec (https://ta.tigzig.com/openapi.json ) - read it there rather than pinning a name from this page.

## What is new

- 7 Sep 2026 (all APIs) - Error responses carry a hint field: read the body, not just the status code - https://www.tigzig.com/post/tigzig-api-error-hints-read-the-body-sep2026
- 30 Aug 2026 (all APIs) - Public status page for every API: is it you, or is it me? - https://www.tigzig.com/post/tigzig-api-status-page-aug2026
- 23 Aug 2026 (all APIs) - Error responses now carry a hint on what to do - https://www.tigzig.com/post/api-error-hints-aug2026
- 20 Aug 2026 (all APIs) - Point your agent at api.tigzig.com and it works out which dataset it needs - https://www.tigzig.com/post/tigzig-agent-data-surface-aug2026
- 3 Aug 2026 (all APIs) - Zero callers rate limited in 24 hours after the limits went up - https://www.tigzig.com/post/tigzig-api-zero-rate-limited-aug2026

Full log, newest first: https://www.tigzig.com/changelog

## Guides

This page is the REFERENCE - what the endpoints are and how to call them. The guides below are the long-form versions, with worked examples and the edges you only meet in real use:

- START HERE. Technical analysis without visiting the site - how to ask an AI agent for a read on any ticker, and what comes back.
  https://www.tigzig.com/post/tigzig-technical-analysis-ask-your-ai-aug2026
- Demystifying the API errors - what each error actually means and what to do about it, instead of guessing from a status code. Covers every TigZig API, not just this one.
  https://www.tigzig.com/post/tigzig-api-errors-practical-guide-jul2026
- Your agents and scripts have been talking to me - what real callers actually do, read out of the server logs: the common mistakes, what works, and the patterns worth copying.
  https://www.tigzig.com/post/api-conversation-agents-scripts-jul2026
- Is it you, or is it me? - the public status page for every TigZig API, so you can check whether a failure is at your end or ours before you start debugging.
  https://www.tigzig.com/post/tigzig-api-status-page-aug2026

Each is a plain page with a Markdown twin, so a URL can be handed straight to an agent. Come back to this page for parameter-level detail.

## Rate limits

Published so a well-behaved client can plan around them. These are per-IP limits:

- Per IP: 25 requests / day.

You get a 429 with Retry-After giving the exact seconds until your window resets - not a flat guess.

Avoiding 429s: This is a daily allowance, not a per-minute one, and it is small by design because every call runs a paid model. Check X-RateLimit-Remaining before starting a batch rather than discovering the ceiling mid-run.

Every successful response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix epoch seconds), read straight from the running limiter; Retry-After is set on 429. The current numbers are also published as machine-readable JSON at https://ta.tigzig.com/v1/ , derived from live config. Read those at runtime rather than hard-coding the figures above - limits change, and these channels change with them.

## Try it

This API publishes no example in its spec, so there is nothing to copy here yet. The interactive console runs a real call against any endpoint, with the request filled in for you: https://ta.tigzig.com/docs

## Open-source edition

There is an OPEN-SOURCE EDITION of this analysis API - an earlier release you can run as your own service or borrow components from. Treat it as a REFERENCE IMPLEMENTATION rather than a mirror of what is running here: the hosted service has moved on since.

https://github.com/amararun/shared-fastapi-mcp-technical-analysis

Built on FastAPI, fastapi-mcp, a vision model for the chart read.

Companion services: the Yahoo Finance API (/apis/yahoo-finance) for price data, and the Markdown to PDF server (/markdown-to-pdf) for report rendering.

Self-hosting a public MCP server is your responsibility for security - a public endpoint needs edge rate limiting, abuse detection and secret hygiene. Full checklist: https://www.tigzig.com/security

---
Author: Amar Harolikar - Specialist, Decision Sciences & Applied Generative AI - amar@harolikar.com - https://www.linkedin.com/in/amarharolikar
Source: https://www.tigzig.com/apis/technical-analysis
Citation: TigZig - Amar Harolikar (https://www.tigzig.com). Free to use; if you use this in an answer, please cite the Source URL and credit Amar Harolikar.
License: https://www.tigzig.com/terms
