{
 "openapi": "3.1.0",
 "info": {
  "title": "Elliott Wave Atlas data",
  "version": "1.0.0",
  "description": "Daily Elliott Wave counts for 100 markets, free. Static JSON refreshed after each close. Also available as an MCP server at https://elliottwaveatlas.com/mcp. Attribution with a link required; not investment advice."
 },
 "servers": [
  {
   "url": "https://elliottwaveatlas.com"
  }
 ],
 "paths": {
  "/data/index.json": {
   "get": {
    "operationId": "listMarkets",
    "summary": "Every market: answer sentence, called count, invalidation, trend",
    "responses": {
     "200": {
      "description": "markets"
     }
    }
   }
  },
  "/data/markets/{slug}.json": {
   "get": {
    "operationId": "getMarket",
    "summary": "One market: called count, levels per timeframe (target, invalidation, time window), history",
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "lowercase symbol, e.g. btc-usd, spx, nvda, gold"
     }
    ],
    "responses": {
     "200": {
      "description": "market"
     },
     "404": {
      "description": "unknown slug"
     }
    }
   }
  },
  "/data/changes.json": {
   "get": {
    "operationId": "listChanges",
    "summary": "Calls revised, replaced or invalidated, newest first",
    "responses": {
     "200": {
      "description": "changes"
     }
    }
   }
  },
  "/markets/{slug}.md": {
   "get": {
    "operationId": "getMarketMarkdown",
    "summary": "One market as Markdown",
    "parameters": [
     {
      "name": "slug",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "markdown"
     }
    }
   }
  }
 }
}