{"openapi":"3.0.1","info":{"title":"SwingLab Agent API","description":"Transparent, glass-box market judgment for AI trading agents: setup scores with\nper-factor breakdowns, qualification language, evidence, and freshness — not raw\nmarket-data feeds and not buy/sell advice. Authenticate with a bearer token\n(an OAuth2-issued JWT or a personal access token prefixed `slpat_`) via the\n`Authorization: Bearer <token>` header. The whole surface lives under\n`/api/agent/v1/*`; nothing is served outside it. Errors follow RFC 7807\n(application/problem+json).","version":"1.0.0"},"servers":[{"url":"https://app.swinglab.site","description":"Production"}],"tags":[{"name":"Market Regime","description":"Global market regime context"},{"name":"Market Data","description":"Market data ingestion and retrieval"},{"name":"User Notifications","description":"In-app notifications for triggered alerts"},{"name":"Auth","description":"Authentication endpoints"},{"name":"News","description":"News articles and market updates"},{"name":"Price Alerts","description":"User-defined price crossing alerts"},{"name":"Personal Access Tokens","description":"Personal API tokens for authenticated access"},{"name":"Agent API","description":"Authenticated read API for agent and CLI workflows"},{"name":"Ticker Requests","description":"Authenticated missing-ticker requests"},{"name":"SSE","description":"Server-Sent Events for real-time updates"},{"name":"Changes","description":"Per-user workflow delta feed"},{"name":"Agent API v1","description":"Versioned integration API for Python clients"},{"name":"Saved Scan Alerts","description":"User-defined alerts attached to saved scans"},{"name":"Morning Brief","description":"Signed-in dashboard summary since the user's last active session"},{"name":"Watchlists","description":"Watchlist management"},{"name":"Signals","description":"Trading signal generation and retrieval"},{"name":"Setup Alerts","description":"User-defined setup-category entry alerts"},{"name":"Admin Data Quality","description":"Authenticated market-data quality review"},{"name":"Saved Scans","description":"Saved screening criteria management"},{"name":"Technical Indicators","description":"Calculate technical indicators for securities"},{"name":"Securities","description":"Security registration and listing"},{"name":"Watchlist RS Alerts","description":"User-defined watchlist relative-strength bucket alerts"}],"paths":{"/api/watchlists/{id}":{"get":{"tags":["Watchlists"],"summary":"Get watchlist by ID","operationId":"getById","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WatchlistResponse"}}}}}},"put":{"tags":["Watchlists"],"summary":"Update a watchlist","operationId":"update","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WatchlistResponse"}}}}}},"delete":{"tags":["Watchlists"],"summary":"Delete a watchlist","operationId":"delete","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}}},"/api/saved-scans/{id}":{"get":{"tags":["Saved Scans"],"summary":"Get a saved scan by id","operationId":"getById_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SavedScanResponse"}}}}}},"put":{"tags":["Saved Scans"],"summary":"Update a saved scan","operationId":"update_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedScanRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SavedScanResponse"}}}}}},"delete":{"tags":["Saved Scans"],"summary":"Delete a saved scan","operationId":"delete_1","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}}},"/api/watchlists":{"get":{"tags":["Watchlists"],"summary":"List all watchlists for current user","operationId":"list","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageWatchlistResponse"}}}}}},"post":{"tags":["Watchlists"],"summary":"Create a new watchlist","operationId":"create","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WatchlistResponse"}}}}}}},"/api/watchlists/{id}/securities/{securityId}":{"post":{"tags":["Watchlists"],"summary":"Add a security to a watchlist","operationId":"addSecurity","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}},"delete":{"tags":["Watchlists"],"summary":"Remove a security from a watchlist","operationId":"removeSecurity","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}}},"/api/watchlists/system":{"get":{"tags":["Watchlists"],"summary":"List all system watchlists (public)","operationId":"listSystemWatchlists","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistResponse"}}}}}}},"post":{"tags":["Watchlists"],"summary":"Create a system watchlist (provisioning)","operationId":"createSystemWatchlist","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemWatchlistRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WatchlistResponse"}}}}}}},"/api/watchlists/system/reconcile":{"post":{"tags":["Watchlists"],"summary":"Delete retired system watchlists outside the approved name set","operationId":"reconcileSystemWatchlists","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemWatchlistReconcileRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistResponse"}}}}}}}},"/api/watchlist-rs-alerts":{"get":{"tags":["Watchlist RS Alerts"],"summary":"List watchlist RS alerts for current user","operationId":"list_1","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}},{"name":"watchlistId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageWatchlistRsAlertResponse"}}}}}},"post":{"tags":["Watchlist RS Alerts"],"summary":"Create a watchlist RS alert","operationId":"create_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistRsAlertCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WatchlistRsAlertResponse"}}}}}}},"/api/ticker-requests":{"get":{"tags":["Ticker Requests"],"summary":"List ticker requests for the current user","operationId":"list_2","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["PENDING","FULFILLED","REJECTED"]}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageTickerRequestResponse"}}}}}},"post":{"tags":["Ticker Requests"],"summary":"Create a ticker request for the current user","operationId":"create_2","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TickerRequestCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TickerRequestResponse"}}}}}}},"/api/signals/evaluate/{securityId}":{"post":{"tags":["Signals"],"summary":"Manually trigger signal evaluation for a security","operationId":"evaluateSecurity","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK"}}}},"/api/setup-alerts":{"get":{"tags":["Setup Alerts"],"summary":"List setup alerts for current user","operationId":"list_3","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}},{"name":"securityId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSetupAlertResponse"}}}}}},"post":{"tags":["Setup Alerts"],"summary":"Create a setup alert","operationId":"create_3","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupAlertCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SetupAlertResponse"}}}}}}},"/api/securities":{"get":{"tags":["Securities"],"summary":"List securities with optional filters and pagination","operationId":"list_4","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean","default":true}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSecurityResponse"}}}}}},"post":{"tags":["Securities"],"summary":"Register a new security","operationId":"register","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SecurityResponse"}}}}}}},"/api/securities/{securityId}/market-data/load":{"post":{"tags":["Market Data"],"summary":"Load market data from Yahoo Finance","operationId":"loadData","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketDataLoadRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MarketDataLoadResponse"}}}}}}},"/api/saved-scans":{"get":{"tags":["Saved Scans"],"summary":"List saved scans for current user","operationId":"list_5","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSavedScanResponse"}}}}}},"post":{"tags":["Saved Scans"],"summary":"Create a saved scan","operationId":"create_4","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedScanRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SavedScanResponse"}}}}}}},"/api/saved-scan-alerts":{"get":{"tags":["Saved Scan Alerts"],"summary":"List saved scan alerts for current user","operationId":"list_6","parameters":[{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSavedScanAlertResponse"}}}}}},"post":{"tags":["Saved Scan Alerts"],"summary":"Create a saved scan alert","operationId":"create_5","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedScanAlertCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SavedScanAlertResponse"}}}}}}},"/api/notifications/read-all":{"post":{"tags":["User Notifications"],"summary":"Mark all notifications as read","operationId":"markAllRead","responses":{"204":{"description":"No Content"}}}},"/api/news/refresh":{"post":{"tags":["News"],"summary":"Refresh news from Finnhub","operationId":"refresh","responses":{"204":{"description":"No Content"}}}},"/api/auth/refresh":{"post":{"tags":["Auth"],"summary":"Refresh access token using refresh token cookie","operationId":"refresh_1","parameters":[{"name":"refresh_token","in":"cookie","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AuthTokenResponse"}}}}}}},"/api/auth/personal-access-tokens":{"get":{"tags":["Personal Access Tokens"],"summary":"List personal access tokens for the current user","operationId":"list_7","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PersonalAccessTokenResponse"}}}}}}},"post":{"tags":["Personal Access Tokens"],"summary":"Create a personal access token","operationId":"create_6","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePersonalAccessTokenRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PersonalAccessTokenResponse"}}}}}}},"/api/auth/logout":{"post":{"tags":["Auth"],"summary":"Logout and revoke all refresh tokens","operationId":"logout","responses":{"200":{"description":"OK"}}}},"/api/auth/heartbeat":{"post":{"tags":["Auth"],"summary":"Record active foreground user presence","operationId":"heartbeat","responses":{"200":{"description":"OK"}}}},"/api/alerts":{"get":{"tags":["Price Alerts"],"summary":"List price alerts for current user","operationId":"list_8","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}},{"name":"securityId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PriceAlertListResponse"}}}}}},"post":{"tags":["Price Alerts"],"summary":"Create a price alert","operationId":"create_7","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceAlertCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PriceAlertResponse"}}}}}}},"/api/agent/v1/analysis":{"post":{"tags":["Agent API v1"],"summary":"Get batch technical analysis for requested tickers","operationId":"getAnalysis","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationAnalysisRequest"}}}},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IntegrationAnalysisResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/data-quality/{securityId}/repair/dry-run":{"post":{"tags":["Admin Data Quality"],"summary":"Dry-run a provider-selectable market-data repair","operationId":"dryRunRepair","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataQualityRepairDryRunRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DataQualityRepairResponse"}}}}}}},"/api/admin/data-quality/{securityId}/repair/apply":{"post":{"tags":["Admin Data Quality"],"summary":"Apply an allowed data-quality repair plan","operationId":"applyRepair","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataQualityRepairApplyRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DataQualityRepairResponse"}}}}}}},"/api/admin/data-quality/refetch-hourly":{"post":{"tags":["Admin Data Quality"],"summary":"One-time: re-fetch the trailing 1h window from the provider for one page of active securities","operationId":"refetchHourly","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":30}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"afterSecurityId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/HourlyRefetchResponse"}}}}}}},"/api/admin/data-quality/overlap-divergence-audit":{"post":{"tags":["Admin Data Quality"],"summary":"One-time: re-evaluate overlap_divergence flags and clear false positives","operationId":"auditOverlapDivergence","parameters":[{"name":"apply","in":"query","required":false,"schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"afterSecurityId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OverlapDivergenceAuditResponse"}}}}}}},"/api/admin/data-quality/dedup-signals":{"post":{"tags":["Admin Data Quality"],"summary":"One-time: delete repeated signal rows created before the cutoff, keeping the first row of each run","operationId":"dedupSignals","parameters":[{"name":"before","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SignalDedupResult"}}}}}}},"/api/admin/data-quality/dedup-daily-bars":{"post":{"tags":["Admin Data Quality"],"summary":"One-time: collapse duplicate daily bars and canonicalize the recent window","operationId":"dedupDailyBars","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DailyBarDedupResponse"}}}}}}},"/api/admin/data-quality/cleanup-hourly-grid":{"post":{"tags":["Admin Data Quality"],"summary":"One-time: delete 1h rows that are off their listing's Yahoo hourly grid","operationId":"cleanupHourlyGrid","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/HourlyGridCleanupResult"}}}}}}},"/api/watchlist-rs-alerts/{id}":{"delete":{"tags":["Watchlist RS Alerts"],"summary":"Delete a watchlist RS alert","operationId":"delete_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Watchlist RS Alerts"],"summary":"Update a watchlist RS alert","operationId":"update_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistRsAlertUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/WatchlistRsAlertResponse"}}}}}}},"/api/setup-alerts/{id}":{"delete":{"tags":["Setup Alerts"],"summary":"Delete a setup alert","operationId":"delete_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Setup Alerts"],"summary":"Update a setup alert","operationId":"update_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupAlertUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SetupAlertResponse"}}}}}}},"/api/securities/{id}/active":{"patch":{"tags":["Securities"],"summary":"Update security active status","operationId":"updateActive","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecurityActiveRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SecurityResponse"}}}}}}},"/api/saved-scan-alerts/{id}":{"delete":{"tags":["Saved Scan Alerts"],"summary":"Delete a saved scan alert","operationId":"delete_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Saved Scan Alerts"],"summary":"Update a saved scan alert","operationId":"update_4","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SavedScanAlertUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SavedScanAlertResponse"}}}}}}},"/api/notifications/{id}/read":{"patch":{"tags":["User Notifications"],"summary":"Mark a notification as read","operationId":"markRead","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserNotificationResponse"}}}}}}},"/api/alerts/{id}":{"delete":{"tags":["Price Alerts"],"summary":"Delete a price alert","operationId":"delete_5","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}},"patch":{"tags":["Price Alerts"],"summary":"Update a price alert","operationId":"update_5","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceAlertUpdateRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PriceAlertResponse"}}}}}}},"/s/{symbol}":{"get":{"tags":["share-controller"],"operationId":"shareSecurityPage","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}},{"name":"allParams","in":"query","required":true,"schema":{"type":"object","additionalProperties":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/watchlists/{id}/securities":{"get":{"tags":["Watchlists"],"summary":"List securities in a watchlist","operationId":"listSecurities","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSecurityResponse"}}}}}}},"/api/sse/signals":{"get":{"tags":["SSE"],"summary":"Subscribe to real-time trading signals","operationId":"subscribeToSignals","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/api/sse/prices":{"get":{"tags":["SSE"],"summary":"Subscribe to real-time price updates","operationId":"subscribeToPrices","parameters":[{"name":"securityIds","in":"query","required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/api/sse/news":{"get":{"tags":["SSE"],"summary":"Subscribe to real-time news updates","operationId":"subscribeToNews","responses":{"200":{"description":"OK","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/api/signals":{"get":{"tags":["Signals"],"summary":"Get signals for a security with pagination","operationId":"getSignals","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSignalResponse"}}}}}}},"/api/signals/recent":{"get":{"tags":["Signals"],"summary":"Get recent signals across all securities","operationId":"getRecentSignals","parameters":[{"name":"minutes","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":60}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SignalResponse"}}}}}}}},"/api/signals/chart":{"get":{"tags":["Signals"],"summary":"Get lightweight recent signals for chart markers","operationId":"getChartSignals","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":50}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ChartSignalResponse"}}}}}}}},"/api/securities/{securityId}/market-data":{"get":{"tags":["Market Data"],"summary":"Get stored market data for a security","operationId":"getMarketData","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"startDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"endDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"interval","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageMarketDataResponse"}}}}}}},"/api/securities/{securityId}/market-data/price-changes":{"get":{"tags":["Market Data"],"summary":"Get price changes over multiple time periods","operationId":"getPriceChanges","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PriceChangeResponse"}}}}}}},"/api/securities/{securityId}/market-data/chart-candles":{"get":{"tags":["Market Data"],"summary":"Get canonical chart candles (range-based preferred interval with fallback)","operationId":"getChartCandles","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"range","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":500}},{"name":"preferredInterval","in":"query","required":false,"schema":{"type":"string","default":"1h"}},{"name":"fallbackInterval","in":"query","required":false,"schema":{"type":"string","default":"1d"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ChartCandlesResponse"}}}}}}},"/api/securities/{id}":{"get":{"tags":["Securities"],"summary":"Get security by ID","operationId":"getById_2","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SecurityResponse"}}}}}}},"/api/securities/{id}/relative-strength":{"get":{"tags":["Securities"],"summary":"Get relative strength vs benchmark","operationId":"getRelativeStrength","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"benchmark","in":"query","required":false,"schema":{"type":"string","default":"SPY"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RelativeStrengthResponse"}}}}}}},"/api/securities/snapshots":{"get":{"tags":["Securities"],"summary":"List securities with current price and change percentages in a single query","operationId":"listSnapshots","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean","default":true}},{"name":"watchlistId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"scan","in":"query","required":false,"schema":{"type":"string"}},{"name":"setup","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"dir","in":"query","required":false,"schema":{"type":"string"}},{"name":"setupScoreMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"rsPercentileMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"distanceFromHigh52wPctMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"distanceFromHigh52wPctMax","in":"query","required":false,"schema":{"type":"number"}},{"name":"lastGapPercentMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"hasUnfilledGap","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"lastGapDaysMax","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"dataHealth","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeStale","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SecuritySnapshotPageResponse"}}}}}}},"/api/securities/snapshots/page":{"get":{"tags":["Securities"],"summary":"List securities snapshots with cursor pagination","operationId":"listSnapshotPage","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean","default":true}},{"name":"watchlistId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"scan","in":"query","required":false,"schema":{"type":"string"}},{"name":"setupScoreMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"rsPercentileMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"distanceFromHigh52wPctMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"distanceFromHigh52wPctMax","in":"query","required":false,"schema":{"type":"number"}},{"name":"lastGapPercentMin","in":"query","required":false,"schema":{"type":"number"}},{"name":"hasUnfilledGap","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"lastGapDaysMax","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":100}},{"name":"dataHealth","in":"query","required":false,"schema":{"type":"string"}},{"name":"includeStale","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SecuritySnapshotPageResponse"}}}}}}},"/api/securities/snapshots/batch":{"get":{"tags":["Securities"],"summary":"Get security snapshots for multiple symbols in a single request","operationId":"getSnapshotsBySymbols","parameters":[{"name":"symbols","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecuritySnapshotResponse"}}}}}}}},"/api/securities/by-symbol/{symbol}/snapshot":{"get":{"tags":["Securities"],"summary":"Get an exact security snapshot by symbol","operationId":"getSnapshotBySymbol","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SecuritySnapshotResponse"}}}}}}},"/api/saved-scan-alerts/{id}/events":{"get":{"tags":["Saved Scan Alerts"],"summary":"List saved scan alert trigger history","operationId":"listEvents","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageSavedScanAlertEventResponse"}}}}}}},"/api/og/image/{symbol}.png":{"get":{"tags":["og-controller"],"operationId":"getOgImage","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"image/png":{"schema":{"type":"string","format":"byte"}}}}}}},"/api/notifications":{"get":{"tags":["User Notifications"],"summary":"List notifications for current user","operationId":"list_9","parameters":[{"name":"unreadOnly","in":"query","required":false,"schema":{"type":"boolean","default":false}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserNotificationListResponse"}}}}}}},"/api/news":{"get":{"tags":["News"],"summary":"List news articles","operationId":"list_10","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageable","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Pageable"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageNewsResponse"}}}}}}},"/api/news/{id}":{"get":{"tags":["News"],"summary":"Get news article by ID","operationId":"getById_3","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/NewsResponse"}}}}}}},"/api/morning-brief":{"get":{"tags":["Morning Brief"],"summary":"Get signed-in morning brief for the current user","operationId":"getBrief","parameters":[{"name":"watchlistId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MorningBriefResponse"}}}}}}},"/api/market-regime/snapshots":{"get":{"tags":["Market Regime"],"summary":"List market regime instruments with snapshot data","operationId":"listSnapshots_1","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SecuritySnapshotResponse"}}}}}}}},"/api/indicators/sma":{"get":{"tags":["Technical Indicators"],"summary":"Calculate Simple Moving Average (SMA)","operationId":"calculateSMA","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SMAResponse"}}}}}}},"/api/indicators/rsi":{"get":{"tags":["Technical Indicators"],"summary":"Calculate Relative Strength Index (RSI)","operationId":"calculateRSI","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":14}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSIResponse"}}}}}}},"/api/indicators/obv":{"get":{"tags":["Technical Indicators"],"summary":"Calculate On-Balance Volume (OBV)","operationId":"calculateOBV","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/OBVResponse"}}}}}}},"/api/indicators/macd":{"get":{"tags":["Technical Indicators"],"summary":"Calculate MACD (Moving Average Convergence Divergence)","operationId":"calculateMACD","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"fastPeriod","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":12}},{"name":"slowPeriod","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":26}},{"name":"signalPeriod","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":9}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MACDResponse"}}}}}}},"/api/indicators/ema":{"get":{"tags":["Technical Indicators"],"summary":"Calculate Exponential Moving Average (EMA)","operationId":"calculateEMA","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":12}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/EMAResponse"}}}}}}},"/api/indicators/bollinger-bands":{"get":{"tags":["Technical Indicators"],"summary":"Calculate Bollinger Bands","operationId":"calculateBollingerBands","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"stdDev","in":"query","required":false,"schema":{"minimum":0.0000010,"exclusiveMinimum":false,"type":"number","default":2.0}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/BollingerBandsResponse"}}}}}}},"/api/indicators/atr":{"get":{"tags":["Technical Indicators"],"summary":"Calculate Average True Range (ATR)","operationId":"calculateATR","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":14}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ATRResponse"}}}}}}},"/api/indicators/adx":{"get":{"tags":["Technical Indicators"],"summary":"Calculate Average Directional Index (ADX) with +DI/-DI","operationId":"calculateADX","parameters":[{"name":"securityId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"period","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":14}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ADXResponse"}}}}}}},"/api/changes":{"get":{"tags":["Changes"],"summary":"Get workflow changes since the user's last active session","operationId":"getChanges","parameters":[{"name":"watchlistId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"symbol","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ChangesResponse"}}}}}}},"/api/auth/me":{"get":{"tags":["Auth"],"summary":"Get current user profile","operationId":"me","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}}}}},"/api/agent/v1/watchlists":{"get":{"tags":["Agent API v1"],"summary":"List system watchlists and owned personal watchlists","operationId":"listWatchlists","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IntegrationWatchlistsResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/watchlists/{ref}/securities":{"get":{"tags":["Agent API"],"summary":"Get ranked securities for a system or owned personal watchlist","operationId":"getWatchlistSecurities","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgentSecurityResultsResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/watchlist":{"get":{"tags":["Agent API v1"],"summary":"Get tickers for an explicit system or owned personal watchlist ref","operationId":"getWatchlist","parameters":[{"name":"watchlist","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IntegrationWatchlistTickersResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/scans":{"get":{"tags":["Agent API"],"summary":"List system scans and owned saved scans","operationId":"listScans","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentScanRefResponse"}}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/scans/{ref}/results":{"get":{"tags":["Agent API"],"summary":"Get ranked results for a system scan or owned saved scan","operationId":"getScanResults","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgentSecurityResultsResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/news":{"get":{"tags":["Agent API v1"],"summary":"Get ticker-mapped recent news","operationId":"getNews","parameters":[{"name":"tickers","in":"query","required":false,"schema":{"type":"string"}},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/IntegrationNewsResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/context/symbols/{symbol}":{"get":{"tags":["Agent API"],"summary":"Get a richer one-symbol context packet","operationId":"getSymbolContext","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgentSymbolContextResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/context/scans/{ref}":{"get":{"tags":["Agent API"],"summary":"Get a bounded multi-symbol context packet for a scan","operationId":"getScanContext","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgentScanContextResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/agent/v1/briefs/{symbol}":{"get":{"tags":["Agent API"],"summary":"Get a one-symbol technical research brief","operationId":"getBrief_1","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/AgentSecurityBriefResponse"}}}},"401":{"description":"Authentication required","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}},"security":[{"bearerAuth":[]}]}},"/api/admin/data-quality":{"get":{"tags":["Admin Data Quality"],"summary":"List active securities with low market-data quality","operationId":"list_11","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"issue","in":"query","required":false,"schema":{"type":"string"}},{"name":"assetType","in":"query","required":false,"schema":{"type":"string"}},{"name":"refreshBand","in":"query","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string"}},{"name":"dir","in":"query","required":false,"schema":{"type":"string"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DataQualityPageResponse"}}}}}}},"/api/admin/data-quality/{securityId}/repair/attempts":{"get":{"tags":["Admin Data Quality"],"summary":"List recent data-quality repair attempts","operationId":"repairAttempts","parameters":[{"name":"securityId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataQualityRepairAttemptResponse"}}}}}}}},"/api/admin/data-quality/summary":{"get":{"tags":["Admin Data Quality"],"summary":"Summarize low-quality market-data issue counts","operationId":"summary","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/DataQualitySummaryResponse"}}}}}}},"/api/admin/data-quality/repair/providers":{"get":{"tags":["Admin Data Quality"],"summary":"List historical providers available for data-quality repair","operationId":"repairProviders","responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataQualityRepairProviderResponse"}}}}}}}},"/api/auth/personal-access-tokens/{id}":{"delete":{"tags":["Personal Access Tokens"],"summary":"Revoke a personal access token","operationId":"revoke","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"204":{"description":"No Content"}}}}},"components":{"schemas":{"WatchlistRequest":{"required":["name"],"type":"object","properties":{"name":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":500,"minLength":0,"type":"string"}}},"WatchlistResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"isDefault":{"type":"boolean"},"isSystem":{"type":"boolean"},"securitiesCount":{"type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"SavedScanCriteriaRequest":{"type":"object","properties":{"searchQuery":{"type":"string"},"watchlistId":{"type":"integer","format":"int64"},"assetType":{"type":"string"},"scan":{"type":"string"},"sortColumn":{"type":"string"},"sortDirection":{"type":"string"},"filters":{"$ref":"#/components/schemas/SavedScanFiltersRequest"}}},"SavedScanFiltersRequest":{"type":"object","properties":{"setupScoreMin":{"type":"number"},"rsPercentileMin":{"type":"number"},"distanceFromHigh52wPctMin":{"type":"number"},"distanceFromHigh52wPctMax":{"type":"number"},"lastGapPercentMin":{"type":"number"},"hasUnfilledGap":{"type":"boolean"},"lastGapDaysMax":{"type":"integer","format":"int32"}}},"SavedScanRequest":{"required":["name"],"type":"object","properties":{"name":{"maxLength":100,"minLength":0,"type":"string"},"description":{"maxLength":500,"minLength":0,"type":"string"},"criteria":{"$ref":"#/components/schemas/SavedScanCriteriaRequest"}}},"SavedScanCriteriaResponse":{"type":"object","properties":{"searchQuery":{"type":"string"},"watchlistId":{"type":"integer","format":"int64"},"assetType":{"type":"string"},"scan":{"type":"string"},"sortColumn":{"type":"string"},"sortDirection":{"type":"string"},"filters":{"$ref":"#/components/schemas/SavedScanFiltersResponse"}}},"SavedScanFiltersResponse":{"type":"object","properties":{"setupScoreMin":{"type":"number"},"rsPercentileMin":{"type":"number"},"distanceFromHigh52wPctMin":{"type":"number"},"distanceFromHigh52wPctMax":{"type":"number"},"lastGapPercentMin":{"type":"number"},"hasUnfilledGap":{"type":"boolean"},"lastGapDaysMax":{"type":"integer","format":"int32"}}},"SavedScanResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"criteria":{"$ref":"#/components/schemas/SavedScanCriteriaResponse"},"watchlistName":{"type":"string"},"watchlistAvailable":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"SystemWatchlistRequest":{"required":["name"],"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"symbols":{"type":"array","items":{"type":"string"}}}},"SystemWatchlistReconcileRequest":{"required":["names"],"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}}},"WatchlistRsAlertCreateRequest":{"required":["thresholdPercentile","watchlistId"],"type":"object","properties":{"watchlistId":{"type":"integer","format":"int64"},"thresholdPercentile":{"maximum":100,"minimum":1,"type":"integer","format":"int32"},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}}},"WatchlistRsAlertResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"watchlistId":{"type":"integer","format":"int64"},"watchlistName":{"type":"string"},"systemWatchlist":{"type":"boolean"},"thresholdPercentile":{"type":"integer","format":"int32"},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]},"triggeredAt":{"type":"string","format":"date-time"},"triggeredSecurityId":{"type":"integer","format":"int64"},"triggeredSymbol":{"type":"string"},"triggeredRsPercentile":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"TickerRequestCreateRequest":{"required":["symbol"],"type":"object","properties":{"symbol":{"maxLength":20,"minLength":0,"pattern":"^[A-Za-z0-9._-]{1,20}$","type":"string"},"submittedQuery":{"maxLength":50,"minLength":0,"type":"string"}}},"TickerRequestResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"requestedSymbol":{"type":"string"},"submittedQuery":{"type":"string"},"status":{"type":"string","enum":["PENDING","FULFILLED","REJECTED"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"SetupAlertCreateRequest":{"required":["securityId","targetCategory"],"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"targetCategory":{"type":"string","enum":["PULLBACK","LEADING","SQUEEZE","EXTENDED","CAUTION"]},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}}},"SetupAlertResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"assetType":{"type":"string"},"targetCategory":{"type":"string","enum":["PULLBACK","LEADING","SQUEEZE","EXTENDED","CAUTION"]},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]},"triggeredAt":{"type":"string","format":"date-time"},"triggeredCategory":{"type":"string","enum":["PULLBACK","LEADING","SQUEEZE","EXTENDED","CAUTION"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"SecurityRequest":{"required":["symbol"],"type":"object","properties":{"symbol":{"maxLength":20,"minLength":0,"type":"string"},"exchange":{"maxLength":20,"minLength":0,"type":"string"},"assetType":{"maxLength":20,"minLength":0,"type":"string"},"name":{"maxLength":255,"minLength":0,"type":"string"},"displayOrder":{"type":"integer","format":"int32"},"iconKey":{"maxLength":80,"minLength":0,"type":"string"},"sector":{"maxLength":80,"minLength":0,"type":"string"},"currency":{"maxLength":8,"minLength":0,"type":"string"}}},"SecurityResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"exchange":{"type":"string"},"assetType":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"sector":{"type":"string"},"currency":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"},"active":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"MarketDataLoadRequest":{"required":["interval"],"type":"object","properties":{"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"},"interval":{"pattern":"1d|1wk|1mo|1h|15m","type":"string"},"adjusted":{"type":"boolean"},"overwrite":{"type":"boolean"}}},"MarketDataLoadResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"recordsLoaded":{"type":"integer","format":"int32"},"message":{"type":"string"}}},"SavedScanAlertCreateRequest":{"required":["savedScanId"],"type":"object","properties":{"savedScanId":{"type":"integer","format":"int64"},"name":{"maxLength":100,"minLength":0,"type":"string"},"enabled":{"type":"boolean"},"cooldownMinutes":{"minimum":1,"type":"integer","format":"int32"},"minimumNewMatches":{"minimum":1,"type":"integer","format":"int32"}}},"SavedScanAlertResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"savedScanId":{"type":"integer","format":"int64"},"name":{"type":"string"},"enabled":{"type":"boolean"},"deliveryMode":{"type":"string"},"cooldownMinutes":{"type":"integer","format":"int32"},"minimumNewMatches":{"type":"integer","format":"int32"},"lastMatchCount":{"type":"integer","format":"int32"},"lastNewMatchesCount":{"type":"integer","format":"int32"},"lastTriggeredAt":{"type":"string","format":"date-time"},"lastEvaluatedAt":{"type":"string","format":"date-time"},"savedScanName":{"type":"string"},"savedScanAvailable":{"type":"boolean"},"savedScanExecutable":{"type":"boolean"},"savedScanWarning":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"AuthTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"integer","format":"int64"}}},"CreatePersonalAccessTokenRequest":{"required":["name"],"type":"object","properties":{"name":{"maxLength":120,"minLength":0,"type":"string"}}},"PersonalAccessTokenResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"preview":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastUsedAt":{"type":"string","format":"date-time"},"revokedAt":{"type":"string","format":"date-time"},"token":{"type":"string"}}},"PriceAlertCreateRequest":{"required":["direction","securityId","targetPrice"],"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"direction":{"type":"string","enum":["ABOVE","BELOW"]},"targetPrice":{"minimum":0.000001,"exclusiveMinimum":false,"type":"number"},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}}},"PriceAlertResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"assetType":{"type":"string"},"direction":{"type":"string","enum":["ABOVE","BELOW"]},"targetPrice":{"type":"number"},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]},"triggeredAt":{"type":"string","format":"date-time"},"triggeredPrice":{"type":"number"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"IntegrationAnalysisRequest":{"type":"object","properties":{"tickers":{"type":"array","items":{"type":"string"}},"as_of":{"type":"string","format":"date"}}},"AgentDataHealthResponse":{"type":"object","properties":{"status":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"last_candle_at":{"type":"string","format":"date-time"}}},"AgentScoreBreakdownResponse":{"type":"object","properties":{"version":{"type":"integer","format":"int32"},"positive":{"type":"array","items":{"$ref":"#/components/schemas/Factor"}},"positivePoints":{"type":"integer","format":"int32"},"positiveMaxPoints":{"type":"integer","format":"int32"},"normalizedScore":{"type":"number"},"penalties":{"type":"array","items":{"$ref":"#/components/schemas/Factor"}},"finalScore":{"type":"number"},"category":{"type":"string"}}},"AgentSetupEvaluationResponse":{"type":"object","properties":{"qualifies":{"type":"array","items":{"type":"string"}},"weakens":{"type":"array","items":{"type":"string"}},"invalidates":{"type":"array","items":{"type":"string"}},"qualification_summary":{"type":"string"},"risk_summary":{"type":"string"},"risk_tone":{"type":"string"}}},"Factor":{"type":"object","properties":{"factor":{"type":"string"},"points":{"type":"integer","format":"int32"},"maxPoints":{"type":"integer","format":"int32"},"evidence":{"type":"string"}}},"IntegrationAnalysisResponse":{"type":"object","properties":{"as_of":{"type":"string","format":"date"},"results":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/Item"}}}},"Item":{"type":"object","properties":{"symbol":{"type":"string"},"technical_posture":{"type":"string"},"setup_category":{"type":"string"},"setup_score":{"type":"number"},"setup_strength":{"type":"string"},"rsi":{"type":"number"},"price":{"type":"number"},"currency":{"type":"string"},"fifty_two_week_high":{"type":"number"},"fifty_two_week_low":{"type":"number"},"distance_from_52w_high_pct":{"type":"number"},"price_change_1d":{"type":"number"},"price_change_1w":{"type":"number"},"price_change_1m":{"type":"number"},"price_change_1y":{"type":"number"},"rs_percentile":{"type":"number"},"commentary":{"type":"string"},"updated_at":{"type":"string","format":"date-time"},"error":{"type":"string"},"score_breakdown":{"$ref":"#/components/schemas/AgentScoreBreakdownResponse"},"setup_evaluation":{"$ref":"#/components/schemas/AgentSetupEvaluationResponse"},"data_health":{"$ref":"#/components/schemas/AgentDataHealthResponse"},"score_version":{"type":"integer","format":"int32"},"data_provider_ids":{"type":"array","items":{"type":"string"}}}},"DataQualityRepairDryRunRequest":{"required":["providerMode","target"],"type":"object","properties":{"providerMode":{"pattern":"SINGLE|COMPARE","type":"string"},"providerId":{"type":"string"},"target":{"pattern":"DAILY_1Y|HOURLY_90D|DAILY_AND_HOURLY","type":"string"}}},"DataQualityRepairResponse":{"type":"object","properties":{"planId":{"type":"string"},"attemptId":{"type":"integer","format":"int64"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"target":{"type":"string"},"status":{"type":"string"},"message":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"allowed":{"type":"boolean"},"blockedReason":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"},"intervals":{"type":"array","items":{"$ref":"#/components/schemas/IntervalResult"}},"issueEstimate":{"$ref":"#/components/schemas/IssueEstimate"}}},"IntervalResult":{"type":"object","properties":{"interval":{"type":"string"},"startDate":{"type":"string","format":"date"},"endDate":{"type":"string","format":"date"},"existingRows":{"type":"integer","format":"int64"},"selectedProviderId":{"type":"string"},"selectedFetchedRows":{"type":"integer","format":"int32"},"savedRows":{"type":"integer","format":"int32"},"allowed":{"type":"boolean"},"blockedReason":{"type":"string"},"status":{"type":"string"},"providers":{"type":"array","items":{"$ref":"#/components/schemas/ProviderResult"}}}},"IssueEstimate":{"type":"object","properties":{"beforeCount":{"type":"integer","format":"int32"},"afterCount":{"type":"integer","format":"int32"},"resolvedIssues":{"type":"array","items":{"type":"string"}},"remainingIssues":{"type":"array","items":{"type":"string"}}}},"ProviderResult":{"type":"object","properties":{"providerId":{"type":"string"},"fetchedRows":{"type":"integer","format":"int32"},"failed":{"type":"boolean"},"message":{"type":"string"}}},"DataQualityRepairApplyRequest":{"required":["planId"],"type":"object","properties":{"planId":{"type":"string"}}},"HourlyRefetchResponse":{"type":"object","properties":{"securitiesRefetched":{"type":"integer","format":"int32"},"securitiesFailed":{"type":"integer","format":"int32"},"rowsWritten":{"type":"integer","format":"int64"},"lastSecurityId":{"type":"integer","format":"int64"},"hasMore":{"type":"boolean"}}},"Entry":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"verdict":{"type":"string"},"observedRatio":{"type":"string"}}},"OverlapDivergenceAuditResponse":{"type":"object","properties":{"applied":{"type":"boolean"},"examined":{"type":"integer","format":"int32"},"cleared":{"type":"integer","format":"int32"},"kept":{"type":"integer","format":"int32"},"inconclusive":{"type":"integer","format":"int32"},"failed":{"type":"integer","format":"int32"},"keptEntries":{"type":"array","items":{"$ref":"#/components/schemas/Entry"}}}},"SignalDedupResult":{"type":"object","properties":{"securitiesProcessed":{"type":"integer","format":"int32"},"signalsRemoved":{"type":"integer","format":"int64"}}},"DailyBarDedupResponse":{"type":"object","properties":{"securitiesProcessed":{"type":"integer","format":"int32"},"duplicatesRemoved":{"type":"integer","format":"int64"},"timestampsNormalized":{"type":"integer","format":"int64"}}},"HourlyGridCleanupResult":{"type":"object","properties":{"securitiesProcessed":{"type":"integer","format":"int32"},"rowsRemoved":{"type":"integer","format":"int64"}}},"WatchlistRsAlertUpdateRequest":{"type":"object","properties":{"thresholdPercentile":{"maximum":100,"minimum":1,"type":"integer","format":"int32"},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}}},"SetupAlertUpdateRequest":{"type":"object","properties":{"targetCategory":{"type":"string","enum":["PULLBACK","LEADING","SQUEEZE","EXTENDED","CAUTION"]},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}}},"SecurityActiveRequest":{"required":["active"],"type":"object","properties":{"active":{"type":"boolean"}}},"SavedScanAlertUpdateRequest":{"type":"object","properties":{"name":{"maxLength":100,"minLength":0,"type":"string"},"enabled":{"type":"boolean"},"cooldownMinutes":{"minimum":1,"type":"integer","format":"int32"},"minimumNewMatches":{"minimum":1,"type":"integer","format":"int32"}}},"UserNotificationResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","enum":["PRICE_ALERT_TRIGGERED","SETUP_ALERT_TRIGGERED","WATCHLIST_RS_ALERT_TRIGGERED","SAVED_SCAN_ALERT_TRIGGERED"]},"title":{"type":"string"},"body":{"type":"string"},"relatedSecurityId":{"type":"integer","format":"int64"},"relatedSymbol":{"type":"string"},"relatedWatchlistId":{"type":"integer","format":"int64"},"relatedWatchlistName":{"type":"string"},"relatedAlertId":{"type":"integer","format":"int64"},"unread":{"type":"boolean"},"readAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"PriceAlertUpdateRequest":{"type":"object","properties":{"direction":{"type":"string","enum":["ABOVE","BELOW"]},"targetPrice":{"minimum":0.000001,"exclusiveMinimum":false,"type":"number"},"status":{"type":"string","enum":["ACTIVE","PAUSED","TRIGGERED"]}}},"Pageable":{"type":"object","properties":{"page":{"minimum":0,"type":"integer","format":"int32"},"size":{"minimum":1,"type":"integer","format":"int32"},"sort":{"type":"array","items":{"type":"string"}}}},"PageWatchlistResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PageableObject":{"type":"object","properties":{"offset":{"type":"integer","format":"int64"},"unpaged":{"type":"boolean"},"paged":{"type":"boolean"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"}}},"SortObject":{"type":"object","properties":{"empty":{"type":"boolean"},"unsorted":{"type":"boolean"},"sorted":{"type":"boolean"}}},"PageSecurityResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/SecurityResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PageWatchlistRsAlertResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/WatchlistRsAlertResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PageTickerRequestResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/TickerRequestResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"SseEmitter":{"type":"object","properties":{"timeout":{"type":"integer","format":"int64"}}},"PageSignalResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/SignalResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"SignalResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"signalType":{"type":"string"},"direction":{"type":"string"},"strength":{"type":"string"},"message":{"type":"string"},"indicatorValues":{"type":"object","additionalProperties":{"type":"object"}},"createdAt":{"type":"string","format":"date-time"}}},"ChartSignalResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"signalType":{"type":"string","enum":["MA_CROSSOVER","RSI_EXTREME","MACD_CROSSOVER","BOLLINGER_BREAKOUT"]},"direction":{"type":"string","enum":["BUY","SELL","HOLD"]},"createdAt":{"type":"string","format":"date-time"}}},"PageSetupAlertResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/SetupAlertResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"MarketDataResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"timestamp":{"type":"string","format":"date-time"},"interval":{"type":"string"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"adjustedClose":{"type":"number"},"volume":{"type":"integer","format":"int64"}}},"PageMarketDataResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/MarketDataResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PriceChange":{"type":"object","properties":{"period":{"type":"string"},"previousPrice":{"type":"number"},"change":{"type":"number"},"changePercent":{"type":"number"}}},"PriceChangeResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"currentPrice":{"type":"number"},"changes":{"type":"array","items":{"$ref":"#/components/schemas/PriceChange"}}}},"ChartCandle":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time"},"open":{"type":"number"},"high":{"type":"number"},"low":{"type":"number"},"close":{"type":"number"},"volume":{"type":"integer","format":"int64"}}},"ChartCandlesResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"range":{"type":"string"},"intervalUsed":{"type":"string"},"fallbackUsed":{"type":"boolean"},"coverageWarning":{"type":"string"},"candles":{"type":"array","items":{"$ref":"#/components/schemas/ChartCandle"}}}},"RelativeStrength":{"type":"object","properties":{"period":{"type":"string"},"securityChange":{"type":"number"},"benchmarkChange":{"type":"number"},"relativeStrength":{"type":"number"}}},"RelativeStrengthResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"benchmarkSymbol":{"type":"string"},"periods":{"type":"array","items":{"$ref":"#/components/schemas/RelativeStrength"}}}},"DataHealthResponse":{"type":"object","properties":{"status":{"type":"string"},"flags":{"type":"array","items":{"type":"string"}},"lastCandleAt":{"type":"string","format":"date-time"},"checkedAt":{"type":"string","format":"date-time"}}},"SecuritySnapshotPageResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SecuritySnapshotResponse"}},"page":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"totalItems":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"hasPrevious":{"type":"boolean"},"hasNext":{"type":"boolean"},"nextCursor":{"type":"string"},"sort":{"type":"string"},"dir":{"type":"string"},"setup":{"type":"string"}}},"SecuritySnapshotResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"exchange":{"type":"string"},"assetType":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"},"active":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"currentPrice":{"type":"number"},"priceUpdatedAt":{"type":"string","format":"date-time"},"dataProviderIds":{"type":"string"},"absChange1h":{"type":"number"},"absChange1d":{"type":"number"},"absChange3d":{"type":"number"},"absChange1w":{"type":"number"},"absChange1m":{"type":"number"},"absChange3m":{"type":"number"},"absChange1y":{"type":"number"},"absChange3y":{"type":"number"},"priceChange1h":{"type":"number"},"priceChange1d":{"type":"number"},"priceChange3d":{"type":"number"},"priceChange1w":{"type":"number"},"priceChange1m":{"type":"number"},"priceChange3m":{"type":"number"},"priceChange1y":{"type":"number"},"priceChange3y":{"type":"number"},"rs1m":{"type":"number"},"rsPercentile":{"type":"number"},"bbwPercentile":{"type":"number"},"obvTrend":{"type":"boolean"},"recentBullishSignals7d":{"type":"integer","format":"int32"},"negativeSentimentDensity7d":{"type":"number"},"setupScore":{"type":"number"},"setupScoreVersion":{"type":"integer","format":"int32"},"setupCategory":{"type":"string"},"high52w":{"type":"number"},"distanceFromHigh52wPct":{"type":"number"},"lastGapPercent":{"type":"number"},"lastGapDate":{"type":"string","format":"date-time"},"hasUnfilledGap":{"type":"boolean"},"nextEarningsDate":{"type":"string","format":"date"},"earningsRiskDays":{"type":"integer","format":"int32"},"sma20":{"type":"number"},"ema12":{"type":"number"},"rsi14":{"type":"number"},"macdLine":{"type":"number"},"bollingerBandwidth":{"type":"number"},"atr14":{"type":"number"},"adx14":{"type":"number"},"obv":{"type":"number"},"scoreBreakdown":{"$ref":"#/components/schemas/SetupScoreBreakdown"},"setupEvaluation":{"$ref":"#/components/schemas/SetupEvaluationResponse"},"dataHealth":{"$ref":"#/components/schemas/DataHealthResponse"}}},"SetupEvaluationResponse":{"type":"object","properties":{"qualifies":{"type":"array","items":{"type":"string"}},"weakens":{"type":"array","items":{"type":"string"}},"invalidates":{"type":"array","items":{"type":"string"}},"qualificationSummary":{"type":"string"},"riskSummary":{"type":"string"},"riskTone":{"type":"string"}}},"SetupScoreBreakdown":{"type":"object","properties":{"version":{"type":"integer","format":"int32"},"positive":{"type":"array","items":{"$ref":"#/components/schemas/Factor"}},"positivePoints":{"type":"integer","format":"int32"},"positiveMaxPoints":{"type":"integer","format":"int32"},"normalizedScore":{"type":"number"},"penalties":{"type":"array","items":{"$ref":"#/components/schemas/Factor"}},"finalScore":{"type":"number"},"category":{"type":"string"}}},"PageSavedScanResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/SavedScanResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PageSavedScanAlertResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/SavedScanAlertResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"PageSavedScanAlertEventResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/SavedScanAlertEventResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"SavedScanAlertEventResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"triggeredAt":{"type":"string","format":"date-time"},"totalMatches":{"type":"integer","format":"int32"},"newMatchesCount":{"type":"integer","format":"int32"},"newSymbolsPreview":{"type":"array","items":{"type":"string"}}}},"UserNotificationListResponse":{"type":"object","properties":{"unreadCount":{"type":"integer","format":"int64"},"content":{"type":"array","items":{"$ref":"#/components/schemas/UserNotificationResponse"}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"}}},"NewsResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"headline":{"type":"string"},"summary":{"type":"string"},"source":{"type":"string"},"url":{"type":"string"},"publishedAt":{"type":"string","format":"date-time"},"sentiment":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"PageNewsResponse":{"type":"object","properties":{"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"content":{"type":"array","items":{"$ref":"#/components/schemas/NewsResponse"}},"number":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"sort":{"$ref":"#/components/schemas/SortObject"},"empty":{"type":"boolean"}}},"MorningBriefResponse":{"type":"object","properties":{"since":{"type":"string","format":"date-time"},"evaluatedAt":{"type":"string","format":"date-time"},"scopedSecurityCount":{"type":"integer","format":"int32"},"summary":{"$ref":"#/components/schemas/Summary"},"notifications":{"type":"array","items":{"$ref":"#/components/schemas/UserNotificationResponse"}},"signals":{"type":"array","items":{"$ref":"#/components/schemas/SignalItem"}},"movers":{"type":"array","items":{"$ref":"#/components/schemas/MoverItem"}},"setupEvents":{"type":"array","items":{"$ref":"#/components/schemas/SetupEventItem"}}}},"MoverItem":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"assetType":{"type":"string"},"currentPrice":{"type":"number"},"changePercent":{"type":"number"},"changePeriod":{"type":"string"},"setupCategory":{"type":"string"}}},"SetupEventItem":{"type":"object","properties":{"eventType":{"type":"string"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"assetType":{"type":"string"},"occurredAt":{"type":"string","format":"date-time"},"title":{"type":"string"},"metricValue":{"type":"number"},"setupCategory":{"type":"string"}}},"SignalItem":{"type":"object","properties":{"signalId":{"type":"integer","format":"int64"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"name":{"type":"string"},"iconKey":{"type":"string"},"assetType":{"type":"string"},"signalType":{"type":"string"},"direction":{"type":"string"},"strength":{"type":"string"},"message":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}},"Summary":{"type":"object","properties":{"unreadNotificationCount":{"type":"integer","format":"int64"},"signalCount":{"type":"integer","format":"int32"},"moverCount":{"type":"integer","format":"int32"},"setupEventCount":{"type":"integer","format":"int32"}}},"SMAResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"period":{"type":"integer","format":"int32"},"value":{"type":"number"},"calculatedAt":{"type":"string","format":"date-time"}}},"RSIResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"period":{"type":"integer","format":"int32"},"value":{"type":"number"},"signal":{"type":"string","enum":["OVERBOUGHT","OVERSOLD","NEUTRAL"]},"calculatedAt":{"type":"string","format":"date-time"}}},"OBVResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"value":{"type":"number"},"trend":{"type":"string","enum":["RISING","FALLING","FLAT"]},"calculatedAt":{"type":"string","format":"date-time"}}},"MACDResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"macdLine":{"type":"number"},"signalLine":{"type":"number"},"histogram":{"type":"number"},"calculatedAt":{"type":"string","format":"date-time"}}},"EMAResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"period":{"type":"integer","format":"int32"},"value":{"type":"number"},"calculatedAt":{"type":"string","format":"date-time"}}},"BollingerBandsResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"period":{"type":"integer","format":"int32"},"stdDev":{"type":"number"},"upperBand":{"type":"number"},"middleBand":{"type":"number"},"lowerBand":{"type":"number"},"bandwidth":{"type":"number"},"calculatedAt":{"type":"string","format":"date-time"}}},"ATRResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"period":{"type":"integer","format":"int32"},"value":{"type":"number"},"calculatedAt":{"type":"string","format":"date-time"}}},"ADXResponse":{"type":"object","properties":{"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"period":{"type":"integer","format":"int32"},"adx":{"type":"number"},"plusDI":{"type":"number"},"minusDI":{"type":"number"},"trending":{"type":"boolean"},"direction":{"type":"string","enum":["BULLISH","BEARISH","NEUTRAL"]},"calculatedAt":{"type":"string","format":"date-time"}}},"ChangesResponse":{"type":"object","properties":{"since":{"type":"string","format":"date-time"},"evaluatedAt":{"type":"string","format":"date-time"},"scopedSecurityCount":{"type":"integer","format":"int32"},"signals":{"type":"array","items":{"$ref":"#/components/schemas/SignalItem"}},"movers":{"type":"array","items":{"$ref":"#/components/schemas/MoverItem"}},"setupEvents":{"type":"array","items":{"$ref":"#/components/schemas/SetupEventItem"}}}},"UserResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"provider":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"admin":{"type":"boolean"}}},"PriceAlertListResponse":{"type":"object","properties":{"freshness":{"type":"string","enum":["LIVE","DELAYED","PAUSED"]},"content":{"type":"array","items":{"$ref":"#/components/schemas/PriceAlertResponse"}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"}}},"IntegrationWatchlistRefResponse":{"type":"object","properties":{"ref":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"securities_count":{"type":"integer","format":"int32"}}},"IntegrationWatchlistsResponse":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"$ref":"#/components/schemas/IntegrationWatchlistRefResponse"}}}},"AgentSecurityResultsResponse":{"type":"object","properties":{"ref":{"type":"string"},"name":{"type":"string"},"page":{"type":"integer","format":"int32"},"limit":{"type":"integer","format":"int32"},"totalItems":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"hasPrevious":{"type":"boolean"},"hasNext":{"type":"boolean"},"items":{"type":"array","items":{"$ref":"#/components/schemas/AgentSecuritySummaryResponse"}}}},"AgentSecuritySummaryResponse":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"assetType":{"type":"string"},"currentPrice":{"type":"number"},"price_change_1d":{"type":"number"},"setupScore":{"type":"number"},"rsPercentile":{"type":"number"},"distance_from_52w_high_pct":{"type":"number"},"lastGapPercent":{"type":"number"},"displayOrder":{"type":"integer","format":"int32"},"watchlistProvenance":{"type":"string"},"scanProvenance":{"type":"string"},"dataHealth":{"$ref":"#/components/schemas/AgentDataHealthResponse"}}},"IntegrationWatchlistTickersResponse":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"watchlist":{"$ref":"#/components/schemas/IntegrationWatchlistRefResponse"},"tickers":{"type":"array","items":{"type":"string"}}}},"AgentScanRefResponse":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"criteriaSummary":{"type":"string"}}},"IntegrationNewsResponse":{"type":"object","properties":{"as_of":{"type":"string","format":"date-time"},"items":{"type":"array","items":{"$ref":"#/components/schemas/Item"}}}},"AgentSecurityBriefResponse":{"type":"object","properties":{"symbol":{"type":"string"},"name":{"type":"string"},"assetType":{"type":"string"},"displayOrder":{"type":"integer","format":"int32"},"watchlists":{"type":"array","items":{"type":"string"}},"matchedScans":{"type":"array","items":{"type":"string"}},"setupScore":{"type":"number"},"setupCategory":{"type":"string"},"scoreVersion":{"type":"integer","format":"int32"},"rsPercentile":{"type":"number"},"distance_from_52w_high_pct":{"type":"number"},"lastGapPercent":{"type":"number"},"price_change_1d":{"type":"number"},"price_change_1w":{"type":"number"},"currentPrice":{"type":"number"},"priceUpdatedAt":{"type":"string","format":"date-time"},"dataHealth":{"$ref":"#/components/schemas/AgentDataHealthResponse"},"setupEvaluation":{"$ref":"#/components/schemas/AgentSetupEvaluationResponse"},"scoreBreakdown":{"$ref":"#/components/schemas/AgentScoreBreakdownResponse"},"whySurfaced":{"type":"string"},"technicalSummary":{"type":"string"},"researchQuestions":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"}}},"AgentSymbolContextResponse":{"type":"object","properties":{"symbol":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"brief":{"$ref":"#/components/schemas/AgentSecurityBriefResponse"},"researchChecklist":{"type":"array","items":{"type":"string"}}}},"AgentScanContextResponse":{"type":"object","properties":{"scan":{"type":"string"},"generatedAt":{"type":"string","format":"date-time"},"symbolsConsidered":{"type":"integer","format":"int32"},"items":{"type":"array","items":{"$ref":"#/components/schemas/AgentSecurityBriefResponse"}},"selectionRationale":{"type":"string"},"researchChecklist":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"}}},"DataQualityPageResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DataQualityRowResponse"}},"page":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"totalItems":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"hasPrevious":{"type":"boolean"},"hasNext":{"type":"boolean"},"sort":{"type":"string"},"dir":{"type":"string"},"issue":{"type":"string"}}},"DataQualityRowResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"name":{"type":"string"},"exchange":{"type":"string"},"assetType":{"type":"string"},"refreshBand":{"type":"string"},"active":{"type":"boolean"},"dailyRows":{"type":"integer","format":"int64"},"firstDailyDate":{"type":"string","format":"date-time"},"lastDailyDate":{"type":"string","format":"date-time"},"zeroVolumeDailyRows":{"type":"integer","format":"int64"},"zeroVolumeDailyPct":{"type":"number"},"nonZeroVolumeDailyRows":{"type":"integer","format":"int64"},"duplicateDailyDates":{"type":"integer","format":"int64"},"hourlyRows":{"type":"integer","format":"int64"},"firstHourlyAt":{"type":"string","format":"date-time"},"lastHourlyAt":{"type":"string","format":"date-time"},"currentPriceUpdatedAt":{"type":"string","format":"date-time"},"refPrice1d":{"type":"number"},"refPrice1m":{"type":"number"},"refPrice3m":{"type":"number"},"refPrice1y":{"type":"number"},"priceChange1d":{"type":"number"},"priceChange1m":{"type":"number"},"priceChange3m":{"type":"number"},"priceChange1y":{"type":"number"},"hourlyBackfilledTo":{"type":"string","format":"date-time"},"hourlyBackfillCompletedAt":{"type":"string","format":"date-time"},"issues":{"type":"array","items":{"type":"string","enum":["SHORT_HISTORY","STALE_DAILY","SPARSE_VOLUME","SPARSE_HOURLY","DUPLICATE_DAILY_DATES","MISSING_LONG_RETURNS"]}}}},"DataQualityRepairAttemptResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"planId":{"type":"string"},"securityId":{"type":"integer","format":"int64"},"symbol":{"type":"string"},"target":{"type":"string"},"providerMode":{"type":"string"},"selectedProviderIds":{"type":"string"},"status":{"type":"string"},"message":{"type":"string"},"startedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time"}}},"DataQualitySummaryResponse":{"type":"object","properties":{"totalActive":{"type":"integer","format":"int64"},"lowQualityCount":{"type":"integer","format":"int64"},"issueCounts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}},"generatedAt":{"type":"string","format":"date-time"}}},"DataQualityRepairProviderResponse":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"enabled":{"type":"boolean"},"primary":{"type":"boolean"},"fallback":{"type":"boolean"}}},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri","example":"about:blank"},"title":{"type":"string","example":"Bad Request"},"status":{"type":"integer","format":"int32","example":400},"detail":{"type":"string","example":"as_of_unsupported"},"instance":{"type":"string","format":"uri"}},"description":"RFC 7807 problem detail."}},"securitySchemes":{"bearerAuth":{"type":"http","description":"OAuth2-issued JWT or a personal access token (prefix `slpat_`).","scheme":"bearer","bearerFormat":"JWT or slpat_ PAT"}}}}