# ThetaData > Developer-first US market data vendor: real-time and historical options, stocks, indices, and interest-rate data with unfiltered tick-level trades, quotes, and Greeks. Data is served by the Theta Terminal, a local Java application exposing a local REST API (http://127.0.0.1:25503/v3), a WebSocket streaming API (ws://127.0.0.1:25520/v1/events), and an MCP server (http://127.0.0.1:25503/mcp/sse) — or directly via the official Python library (pip install thetadata, HTTPS auth + gRPC data, no terminal needed). Generated by API Evangelist from the ThetaData catalog entry and repo artifacts (2026-07-22); ThetaData publishes no /llms.txt of its own. Key facts for agents: - All 66 v3 REST operations are HTTP GET reads — idempotent, safe to retry. - Auth is session-level (API key or account credentials at Theta Terminal launch / ThetaClient construction), not per-request; the OpenAPI declares security: []. - No pagination: v3 returns single-query responses; keep responses under ~1M ticks (see Request Sizing). - Errors are plain text with custom HTTP codes (471 PERMISSION, 472 NO_DATA, 474 DISCONNECTED, 570 LARGE_REQUEST...). - Concurrency-limited (FREE 1 / VALUE 2 / STANDARD 4 / PRO 8, account-wide), not rate-limited; free tier is 20 req/min. - Output formats: format=csv|json|ndjson|html; expiration/strike accept * wildcards. ## APIs - [REST API v3 docs](https://docs.thetadata.us/): stock, option, index, interest-rate, calendar endpoints (list / snapshot / history / at_time / flat_file) - [OpenAPI 3.1 spec (source of truth)](https://docs.thetadata.us/openapiv3.yaml) - [Streaming WebSocket API](https://docs.thetadata.us/Streaming/Getting-Started.html): QUOTE/TRADE/STATUS JSON messages at ws://127.0.0.1:25520/v1/events - [MCP server](https://docs.thetadata.us/Mcp/Getting-Started.html): built into Theta Terminal v3, SSE at http://127.0.0.1:25503/mcp/sse (Claude CLI: `claude mcp add --transport sse ThetaData http://127.0.0.1:25503/mcp/sse`) ## Specs - [openapi/](https://github.com/api-evangelist/thetadata/tree/main/openapi): OpenAPI 3.1, refined one-per-tag - [asyncapi/thetadata-streaming-asyncapi.yml](https://github.com/api-evangelist/thetadata/blob/main/asyncapi/thetadata-streaming-asyncapi.yml): derived AsyncAPI 3.0 for the WebSocket stream - [mcp/thetadata-mcp.yml](https://github.com/api-evangelist/thetadata/blob/main/mcp/thetadata-mcp.yml): MCP server manifest + candidate tool list - [mcp/thetadata-tool-crosswalk.yml](https://github.com/api-evangelist/thetadata/blob/main/mcp/thetadata-tool-crosswalk.yml): MCP tool -> OpenAPI operation crosswalk ## Docs - [Getting Started](https://docs.thetadata.us/Articles/Getting-Started/Getting-Started.html): terminal install, authentication (API key / creds) - [Python Library](https://docs.thetadata.us/Python-Library/Getting-Started.html): pip install thetadata (Python 3.12+, Polars/Pandas) - [Subscriptions](https://docs.thetadata.us/Articles/Getting-Started/Subscriptions.html): FREE/VALUE/STANDARD/PRO tiers per asset class - [Concurrent Requests](https://docs.thetadata.us/Articles/Data-And-Requests/Concurrent-Requests.html) - [Request Sizing](https://docs.thetadata.us/Articles/Data-And-Requests/Request-Sizing.html) - [Error Codes](https://docs.thetadata.us/Articles/Errors-Exchanges-Conditions/Error-Codes.html) - [JSON Format Guide](https://docs.thetadata.us/json-guide.html): json_new vs json_legacy - [Staging Environment](https://docs.thetadata.us/Articles/Data-And-Requests/Staging-Environment.html): mdds_type=STAGE second connection - [Sample Data Bundle](https://docs.thetadata.us/Articles/Getting-Started/Sample-Data.html): one day of real data, no account needed - [v2 -> v3 Migration Guide](https://docs.thetadata.us/Articles/Getting-Started/v2-migration-guide.html) - [Excel Add-in](https://docs.thetadata.us/Excel/Getting-Started.html) - [Pricing](https://thetadata.net/pricing) - [Status Page](https://thetadata.statuspage.io/) - [Support (Discord)](https://discord.thetadata.us/)