{"app":"Security Performance Review (SPR) API","v":"1.3.0","description":"Portfolio and security performance analytics powered by the open-source ffn library: returns, drawdowns, risk metrics and an HTML report.","base_url":"https://ffn.tigzig.com","docs":"https://www.tigzig.com/apis/ffn","openapi":"https://ffn.tigzig.com/v1/openapi.json","mcp":"https://ffn.tigzig.com/mcp","symbol_format":"Symbols follow the Yahoo Finance convention, so non-US listings carry an exchange suffix: RELIANCE.NS (India NSE), .BO (BSE), .L (London), .HK (Hong Kong), .T (Tokyo). Indices look like ^NSEI and FX like EURUSD=X. Broker, scheme or company names do not resolve. Dates are YYYY-MM-DD.","endpoints":[{"path":"/v1/analyze","methods":["POST"],"summary":"Generates a comprehensive SPR (Security Performance Review) portfolio analysis report using custom calculations and FFN metrics."}],"help":{"docs":"https://www.tigzig.com/apis/ffn","openapi":"https://ffn.tigzig.com/v1/openapi.json","catalog":"https://api.tigzig.com/.well-known/api-catalog"},"limits":{"response_headers":"Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix epoch seconds) for your per-IP budget. On 429, Retry-After is set. Read these at runtime instead of hard-coding numbers.","per_ip":"60 requests per minute per IP","per_ip_amount":60,"per_ip_window_seconds":60,"max_concurrent_per_ip":4,"typical_latency_seconds":"10-30 per call","guidance":"Send several comma-separated symbols in ONE request. Report generation is serialised process-wide, so parallel calls queue rather than finish faster; prefer sequential batches."}}