{
  "openapi": "3.1.0",
  "info": {
    "title": "Raspberry API",
    "version": "1.0.0",
    "description": "Explainable market intelligence, SEC company data and deterministic strategy tools."
  },
  "servers": [{ "url": "https://raspberrytrades.com" }],
  "components": {
    "securitySchemes": {
      "ApiKey": { "type": "apiKey", "in": "header", "name": "x-api-key" }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": ["error"],
        "properties": { "error": { "type": "string" } }
      }
    }
  },
  "security": [{ "ApiKey": [] }],
  "paths": {
    "/api/sentiment": { "get": { "summary": "Stock Sentiment", "parameters": [{ "name": "ticker", "in": "query", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "Sentiment snapshot" }, "400": { "description": "Invalid ticker" }, "401": { "description": "Invalid API key" } } } },
    "/api/market-sentiment": { "get": { "summary": "Market Sentiment", "parameters": [{ "name": "market", "in": "query", "schema": { "type": "string" } }], "responses": { "200": { "description": "Market sentiment or market index" } } } },
    "/api/news": { "get": { "summary": "News Sentiment", "parameters": [{ "name": "ticker", "in": "query", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "Multi-source company headlines" } } } },
    "/api/market-news": { "get": { "summary": "Market News", "parameters": [{ "name": "market", "in": "query", "schema": { "type": "string" } }], "responses": { "200": { "description": "Multi-source market headlines" } } } },
    "/api/history": { "get": { "summary": "Sentiment History", "parameters": [{ "name": "ticker", "in": "query", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "Stored sentiment points" } } } },
    "/api/influencers": { "get": { "summary": "Breakout Radar", "parameters": [{ "name": "ticker", "in": "query", "schema": { "type": "string" } }, { "name": "view", "in": "query", "schema": { "type": "string", "enum": ["evaluated"] } }], "responses": { "200": { "description": "Personalized breakout board" } } } },
    "/api/influencers/accounts": {
      "get": { "summary": "List personal influencers", "responses": { "200": { "description": "Effective private list" } } },
      "post": { "summary": "Add or restore an influencer", "responses": { "201": { "description": "Updated private list" } } },
      "patch": { "summary": "Rename a user-added influencer", "responses": { "200": { "description": "Updated private list" } } },
      "put": { "summary": "Replace the private influencer view", "responses": { "200": { "description": "Updated private list" } } },
      "delete": { "summary": "Hide or remove one influencer", "responses": { "200": { "description": "Updated private list" } } }
    },
    "/api/strategies": { "get": { "summary": "Strategy library and live signals", "responses": { "200": { "description": "Strategy status" } } } },
    "/api/scan": { "get": { "summary": "Strategy scanner", "responses": { "200": { "description": "Current matching symbols" } } } },
    "/api/backtest": { "get": { "summary": "Strategy backtest", "responses": { "200": { "description": "Deterministic metrics and sample trades" } } } },
    "/api/v1/insider-trades/{ticker}": { "get": { "summary": "SEC insider transactions", "parameters": [{ "name": "ticker", "in": "path", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "Normalized transactions" } } } },
    "/api/v1/financials/{ticker}": { "get": { "summary": "Reported financial statements", "parameters": [{ "name": "ticker", "in": "path", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "Normalized SEC facts" }, "202": { "description": "Preparation queued" } } } },
    "/api/v1/guidance/{ticker}": { "get": { "summary": "SEC-filed company guidance", "parameters": [{ "name": "ticker", "in": "path", "required": true, "schema": { "type": "string" } }], "responses": { "200": { "description": "Filed guidance statements" }, "202": { "description": "Preparation queued" } } } }
  }
}
