# API Usage Examples This document provides practical examples for testing each API endpoint. ## 1. Health Check **Request:** ```bash curl http://localhost:5000/health ``` **Response:** ```json { "status": "ok" } ``` --- ## 2. Get Market Information **Request:** ```bash curl -X POST http://localhost:5000/api/market-info \ -H "Content-Type: application/json" \ -d '{ "url": "https://polymarket.com/event/will-biden-pardon-hunter-biden" }' ``` **Response:** ```json { "id": "...", "question": "Will Biden pardon Hunter Biden?", "conditionId": "...", "clobTokenIds": ["..."], "firstTokenId": "..." } ``` --- ## 3. Convert EST to Unix **Request:** ```bash curl -X POST http://localhost:5000/api/time/est-to-unix \ -H "Content-Type: application/json" \ -d '{ "datetime": "2025-11-15 14:30:00" }' ``` **Response:** ```json { "unix_timestamp": 1763210400, "est_datetime": "2025-11-15 14:30:00 EST" } ``` --- ## 4. Convert Unix to EST **Request:** ```bash curl -X POST http://localhost:5000/api/time/unix-to-est \ -H "Content-Type: application/json" \ -d '{ "timestamp": 1763210400 }' ``` **Response:** ```json { "unix_timestamp": 1763210400, "est_datetime": "2025-11-15 14:30:00 EST" } ``` --- ## 5. Get Price History **Request:** ```bash curl -X POST http://localhost:5000/api/price-history \ -H "Content-Type: application/json" \ -d '{ "token_id": "52607315900507156846622820770453728082833251091510131025984187712529448877245", "start_time": "2025-11-14 10:00:00", "end_time": "2025-11-14 16:00:00", "fidelity": 60, "granularity": 60 }' ``` **Response:** ```json { "token_id": "...", "start_unix": 1234567890, "end_unix": 1234567900, "start_time": "2025-11-14 10:00:00 EST", "end_time": "2025-11-14 16:00:00 EST", "fidelity": 60, "granularity": 60, "raw_history_count": 50, "timeseries_count": 360, "raw_history": [ {"t": 1234567890, "p": 0.45} ], "timeseries": [ {"timestamp": 1234567890, "price": 0.45} ] } ``` --- ## 6. Analyze Correlations (LLM) **Request:** ```bash curl -X POST http://localhost:5000/api/analyze-correlations \ -H "Content-Type: application/json" \ -d '{ "question": "Will the Federal Reserve cut interest rates in December 2025?" }' ``` **Response:** ```json { "question": "Will the Federal Reserve cut interest rates in December 2025?", "correlated": [ { "ticker": "TLT", "reason": "Long-term Treasury bonds typically rise when interest rates are cut" }, { "ticker": "XLF", "reason": "Financial sector stocks often react positively to rate cuts" } ], "inversely_correlated": [ { "ticker": "DXY", "reason": "US Dollar typically weakens when Fed cuts rates" }, { "ticker": "BND", "reason": "Bond yields fall with rate cuts, causing inverse price movement" } ] } ``` --- ## 7. Fetch Asset Prices **Request:** ```bash curl -X POST http://localhost:5000/api/fetch-asset-prices \ -H "Content-Type: application/json" \ -d '{ "ticker": "AAPL", "start_time": "2025-11-14 10:00:00", "end_time": "2025-11-14 16:00:00", "interval": "1h" }' ``` **Response:** ```json { "ticker": "AAPL", "start_time": "2025-11-14 10:00:00", "end_time": "2025-11-14 16:00:00", "interval": "1h", "data_points": 6, "timeseries": [ {"timestamp": 1234567890, "price": 150.25}, {"timestamp": 1234571490, "price": 151.30} ] } ``` --- ## 8. Full Analysis (Complete Workflow) This is the **main endpoint** that combines all the functionality. **Request:** ```bash curl -X POST http://localhost:5000/api/analyze-full \ -H "Content-Type: application/json" \ -d '{ "url": "https://polymarket.com/event/will-biden-pardon-hunter-biden", "start_time": "2025-11-01 00:00:00", "end_time": "2025-11-14 23:59:59", "granularity": 60 }' ``` **Response:** ```json { "market_info": { "id": "...", "question": "Will Biden pardon Hunter Biden?", "token_id": "..." }, "time_range": { "start": "2025-11-01 00:00:00", "end": "2025-11-14 23:59:59", "start_unix": 1234567890, "end_unix": 1234567900, "granularity": 60 }, "polymarket_data": [ {"timestamp": 1234567890, "price": 0.45} ], "polymarket_data_normalized": [ {"timestamp": 1234567890, "price": 0.45, "original_price": 0.45} ], "correlated_assets": [ { "ticker": "SPY", "reason": "...", "correlation": 0.75, "data_points": 150, "timeseries": [...], "normalized_timeseries": [...], "success": true } ], "inversely_correlated_assets": [ { "ticker": "GLD", "reason": "...", "correlation": -0.65, "data_points": 150, "timeseries": [...], "normalized_timeseries": [...], "success": true } ] } ``` --- ## Testing with Python You can also test using Python's `requests` library: ```python import requests import json # Full analysis example url = "http://localhost:5000/api/analyze-full" data = { "url": "https://polymarket.com/event/will-biden-pardon-hunter-biden", "start_time": "2025-11-01 00:00:00", "end_time": "2025-11-14 23:59:59", "granularity": 60 } response = requests.post(url, json=data) result = response.json() print(json.dumps(result, indent=2)) ``` --- ## Notes 1. **Time Format**: All times should be in EST format: `"YYYY-MM-DD HH:MM:SS"` 2. **Granularity**: Specified in minutes (60 = hourly, 1 = minute-by-minute) 3. **Intervals**: For yfinance: `"1m"`, `"5m"`, `"15m"`, `"30m"`, `"1h"`, `"1d"` 4. **Correlations**: Range from -1 (perfect inverse) to +1 (perfect positive) 5. **Data Limitations**: - 1-minute data only available for last 7 days - Polymarket CLOB API may have rate limits - Some tickers may not have data for all time periods