{"components":{"parameters":{"TickerParam":{"description":"Signal ticker symbol such as SPX, SPY, BTC, or GC.","in":"path","name":"ticker","required":true,"schema":{"example":"SPX","type":"string"}}},"securitySchemes":{"bearerAuth":{"bearerFormat":"HMAC token","scheme":"bearer","type":"http"}}},"info":{"description":"Signal delivery endpoints for DSAlpha website consumers. Use bearer tokens for both the legacy /api/signals endpoints and the cleaner paid /api/v1 namespace.","title":"Data Science Alpha Signal API","version":"1.0.0"},"openapi":"3.0.3","paths":{"/api/signals/catalog":{"get":{"responses":{"200":{"description":"Catalog of available tickers"}},"security":[{"bearerAuth":[]}],"summary":"List currently available signal tickers","tags":["Signals"]}},"/api/signals/{ticker}/heartbeat":{"get":{"parameters":[{"$ref":"#/components/parameters/TickerParam"}],"responses":{"200":{"description":"Heartbeat and freshness metadata"}},"security":[{"bearerAuth":[]}],"summary":"Check freshness of a ticker signal stream","tags":["Signals"]}},"/api/signals/{ticker}/latest":{"get":{"parameters":[{"$ref":"#/components/parameters/TickerParam"}],"responses":{"200":{"description":"Full latest CSV row plus metadata"}},"security":[{"bearerAuth":[]}],"summary":"Return the latest raw signal row for a ticker","tags":["Signals"]}},"/api/signals/{ticker}/recent_rows":{"get":{"parameters":[{"$ref":"#/components/parameters/TickerParam"},{"in":"query","name":"limit","required":false,"schema":{"default":500,"maximum":10000,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Recent raw signal rows"}},"security":[{"bearerAuth":[]}],"summary":"Return the most recent raw rows for a ticker","tags":["Signals"]}},"/api/strategy/weekly/latest":{"get":{"responses":{"200":{"description":"Published weekly strategy JSON"}},"security":[{"bearerAuth":[]}],"summary":"Return the published weekly strategy payload","tags":["Strategy"]}},"/api/v1/signals/catalog":{"get":{"responses":{"200":{"description":"Versioned ticker catalog"}},"security":[{"bearerAuth":[]}],"summary":"List the versioned external signal catalog","tags":["External API"]}},"/api/v1/signals/{ticker}/latest":{"get":{"parameters":[{"$ref":"#/components/parameters/TickerParam"}],"responses":{"200":{"description":"Clean signal payload with rate-limit headers"}},"security":[{"bearerAuth":[]}],"summary":"Return a cleaned latest signal row for external consumers","tags":["External API"]}},"/api/v1/token":{"post":{"requestBody":{"content":{"application/json":{"schema":{"properties":{"expires_days":{"default":30,"maximum":90,"minimum":1,"type":"integer"}},"type":"object"}}},"required":false},"responses":{"200":{"description":"Issued API key and usage metadata"}},"summary":"Mint an external API key from an authenticated admin session","tags":["External API"]}}},"servers":[{"url":"http://datasciencealpha.com"}],"tags":[{"description":"Legacy signal transport endpoints.","name":"Signals"},{"description":"Versioned external trade signal endpoints.","name":"External API"},{"description":"Published weekly strategy payload.","name":"Strategy"}]}
