--- title: 'Refresh Portfolio Prices' api: 'POST /api/portfolio/refresh-prices' description: 'Fetch current market prices for all portfolio holdings' --- ## Endpoint ``` POST /api/portfolio/refresh-prices ``` ## Description Fetches the latest market prices from Finnhub API for all holdings in the user's portfolio. ## Authentication Requires OAuth 2.0 authentication via session cookies. ## Rate Limiting The free Finnhub API tier allows 60 requests per minute. The application intelligently manages API requests to stay within these limits. ## Response Indicates if the refresh was successful Number of holdings successfully updated List of any errors encountered during refresh ## Example ```bash cURL curl -X POST https://your-domain.com/api/portfolio/refresh-prices \ -H "Cookie: session=your_session_cookie" ``` ```javascript JavaScript const response = await fetch('/api/portfolio/refresh-prices', { method: 'POST' }); const data = await response.json(); if (data.success) { console.log(`Updated ${data.updated_count} holdings`); } ``` ```python Python import requests response = requests.post('http://localhost:5000/api/portfolio/refresh-prices') data = response.json() if data['success']: print(f"Updated {data['updated_count']} holdings") ``` ## Response Example ```json Success { "success": true, "updated_count": 5, "message": "Successfully updated prices for 5 holdings" } ``` ```json Partial Success { "success": true, "updated_count": 4, "errors": [ { "symbol": "INVALID", "error": "Symbol not found" } ] } ``` ```json Error { "success": false, "error": "Finnhub API key not configured" } ``` ## Notes - Prices are automatically refreshed when viewing the portfolio page if last update was >15 minutes ago - Use this endpoint to manually force a refresh at any time - Mutual fund prices may be delayed 15-30 minutes