{"components":{"securitySchemes":{"apiKeyHeader":{"in":"header","name":"X-13FLOW-Key","type":"apiKey"},"bearerAuth":{"scheme":"bearer","type":"http"}}},"info":{"description":"Versioned institutional API over SEC EDGAR-derived 13F datasets.","title":"13FLOW Pro API","version":"v1"},"openapi":"3.1.0","paths":{"/api/pro/v1/admin/buyer-handoff":{"get":{"responses":{"200":{"description":"Buyer handoff pack"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only customer handoff pack without token material"}},"/api/pro/v1/admin/health":{"get":{"responses":{"200":{"description":"Pro admin health"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only Pro control-plane health and usage summary"}},"/api/pro/v1/admin/keys":{"get":{"responses":{"200":{"description":"Pro key list"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only Pro API key list without token material"},"post":{"responses":{"201":{"description":"Created Pro key"},"400":{"description":"Invalid key request"},"403":{"description":"Requires admin:write"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Create a scoped non-admin Pro API key; token is returned once"}},"/api/pro/v1/admin/keys/{key_id}/revoke":{"post":{"parameters":[{"in":"path","name":"key_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Revoked Pro key"},"400":{"description":"Invalid revoke request"},"403":{"description":"Requires admin:write"},"404":{"description":"Not found or already revoked"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Revoke a Pro API key while preserving audit history"}},"/api/pro/v1/admin/ops":{"get":{"responses":{"200":{"description":"Pro ops readiness report"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only read-only commercial ops readiness monitor"}},"/api/pro/v1/admin/pilot-closeout":{"get":{"parameters":[{"in":"query","name":"key_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"days","required":false,"schema":{"default":7,"maximum":30,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Pilot closeout report"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only bounded pilot closeout report"}},"/api/pro/v1/admin/pilot-fulfillment":{"get":{"responses":{"200":{"description":"Pilot fulfillment runbook"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only pilot key issuance checklist and CLI runbook"}},"/api/pro/v1/admin/pilot-renewal":{"get":{"parameters":[{"in":"query","name":"key_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"days","required":false,"schema":{"default":7,"maximum":30,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Pilot renewal recommendation"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only pilot renewal or expansion recommendation"}},"/api/pro/v1/admin/pilot-request-assist":{"get":{"responses":{"200":{"description":"Pilot request assistant template"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only stateless pilot request assistant template"},"post":{"responses":{"200":{"description":"Pilot request operator checklist"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Transform a pilot request note into an operator checklist without storing it"}},"/api/pro/v1/admin/release-readiness":{"get":{"parameters":[{"in":"query","name":"key_id","required":false,"schema":{"type":"string"}},{"in":"query","name":"days","required":false,"schema":{"default":7,"maximum":30,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Release readiness decision pack"},"403":{"description":"Insufficient scope"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Admin-only go/no-go pack for controlled pilot release"}},"/api/pro/v1/data-quality":{"get":{"parameters":[{"in":"query","name":"threshold","schema":{"default":100,"type":"number"}},{"in":"query","name":"limit","schema":{"default":100,"type":"integer"}}],"responses":{"200":{"description":"Quality report"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Get the data-quality report"}},"/api/pro/v1/fund/{cik}":{"get":{"parameters":[{"in":"path","name":"cik","required":true,"schema":{"pattern":"^[0-9]{1,12}$","type":"string"}},{"in":"query","name":"basis","required":false,"schema":{"format":"date","type":"string"}},{"in":"query","name":"include_holds","required":false,"schema":{"default":true,"type":"boolean"}},{"in":"query","name":"limit_positions","required":false,"schema":{"maximum":1000,"minimum":1,"type":"integer"}},{"in":"query","name":"limit_moves","required":false,"schema":{"maximum":2000,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Fund detail"},"404":{"description":"Fund not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Get a fund portfolio, filing metadata, moves, and quality flags"}},"/api/pro/v1/funds":{"get":{"responses":{"200":{"description":"Fund list"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"List funds with AUM series and quality flags"}},"/api/pro/v1/onboarding":{"get":{"responses":{"200":{"description":"Pro onboarding checklist"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Authenticated Pro integration self-diagnostic"}},"/api/pro/v1/openapi.json":{"get":{"responses":{"200":{"description":"OpenAPI JSON"}},"summary":"OpenAPI document for the Pro API"}},"/api/pro/v1/status":{"get":{"responses":{"200":{"description":"API key metadata"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Validate an API key"}},"/api/pro/v1/usage":{"get":{"parameters":[{"in":"query","name":"recent_limit","required":false,"schema":{"default":25,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"route_limit","required":false,"schema":{"default":15,"maximum":50,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Usage and quota report"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Customer-safe usage, quota and recent request telemetry"}},"/api/pro/v1/watchlist":{"get":{"parameters":[{"in":"query","name":"tickers","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Watchlist trigger feed"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Stateless watchlist trigger feed from trusted ticker flow"}},"/api/pro/v1/watchlist/discover":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":50,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"action","required":false,"schema":{"description":"Comma-separated alert, watch, monitor, blocked","type":"string"}},{"in":"query","name":"min_score","required":false,"schema":{"maximum":100,"minimum":0,"type":"number"}},{"in":"query","name":"move","required":false,"schema":{"description":"Comma-separated NEW, ADD, TRIM, EXIT","type":"string"}},{"in":"query","name":"min_holders","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"min_buyers","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"max_13f_value_usd","required":false,"schema":{"minimum":0,"type":"number"}},{"in":"query","name":"exclude_mega_cap","required":false,"schema":{"description":"Uses aggregated latest 13F value as a proxy, not market cap","type":"boolean"}}],"responses":{"200":{"description":"Ranked discovery watchlist"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Automatic trusted 13F watchlist discovery feed"}},"/api/pro/v1/workspace/activity":{"get":{"parameters":[{"in":"query","name":"limit","required":false,"schema":{"default":50,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"event_type","required":false,"schema":{"type":"string"}},{"in":"query","name":"entity_type","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace activity feed"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"List bounded workspace activity events"}},"/api/pro/v1/workspace/alerts":{"get":{"parameters":[{"in":"query","name":"status","required":false,"schema":{"default":"open","enum":["open","acknowledged","dismissed","all"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"default":50,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"watchlist_id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace alert inbox"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"List saved workspace alerts"}},"/api/pro/v1/workspace/alerts/{alert_id}":{"patch":{"parameters":[{"in":"path","name":"alert_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace alert updated"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Update a workspace alert status"}},"/api/pro/v1/workspace/export":{"get":{"parameters":[{"in":"query","name":"format","required":false,"schema":{"default":"json","enum":["json","csv"],"type":"string"}},{"in":"query","name":"include_signals","required":false,"schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"Workspace export"},"400":{"description":"Invalid export format"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Export bounded workspace watchlists, alerts and latest snapshots"}},"/api/pro/v1/workspace/overview":{"get":{"responses":{"200":{"description":"Workspace overview"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Workspace dashboard summary for the authenticated API key"}},"/api/pro/v1/workspace/report":{"get":{"parameters":[{"in":"query","name":"watchlist_id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Workspace report"},"404":{"description":"Watchlist not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Human-readable deterministic workspace report"}},"/api/pro/v1/workspace/watchlists":{"get":{"responses":{"200":{"description":"Saved watchlists"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"List saved workspace watchlists"},"post":{"responses":{"201":{"description":"Saved watchlist created"},"400":{"description":"Invalid watchlist payload"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Create a saved workspace watchlist"}},"/api/pro/v1/workspace/watchlists/{watchlist_id}":{"delete":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved watchlist deleted"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Delete a saved workspace watchlist"},"get":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved watchlist"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Get a saved workspace watchlist"},"put":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved watchlist updated"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Replace a saved workspace watchlist"}},"/api/pro/v1/workspace/watchlists/{watchlist_id}/delete":{"post":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved watchlist deleted"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Delete a saved workspace watchlist using POST for strict edge proxies"}},"/api/pro/v1/workspace/watchlists/{watchlist_id}/preview":{"get":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved watchlist trigger preview"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Preview ticker-flow triggers for a saved workspace watchlist"}},"/api/pro/v1/workspace/watchlists/{watchlist_id}/signals":{"get":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Filtered saved watchlist signals"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Apply saved filters to a saved workspace watchlist"}},"/api/pro/v1/workspace/watchlists/{watchlist_id}/signals/history":{"get":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"include_signals","required":false,"schema":{"default":false,"type":"boolean"}}],"responses":{"200":{"description":"Saved watchlist signal history"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"List bounded saved watchlist signal snapshots"}},"/api/pro/v1/workspace/watchlists/{watchlist_id}/signals/snapshot":{"post":{"parameters":[{"in":"path","name":"watchlist_id","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Saved watchlist signal snapshot"},"404":{"description":"Not found"}},"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"summary":"Persist a point-in-time saved watchlist signal snapshot"}}},"servers":[{"url":"https://13flow.eu"}]}
