{
    "allowCustomDataForDataTypeAny": true,
    "functions": [
        {
            "description": "Diagnostic — bedrock test. No console, no Date, no globals.\nIf =WINDY.PING() does not return 42, Excel is not invoking our code at all.",
            "id": "PING",
            "name": "PING",
            "parameters": [],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Diagnostic — async but no network, returns after 100ms.\nIf =WINDY.PING_ASYNC() works but =WINDY.RATE doesn't, the runtime handles\nasync correctly and the issue is in fetch/storage specifically.",
            "id": "PING_ASYNC",
            "name": "PING_ASYNC",
            "parameters": [],
            "result": {
                "type": "string"
            }
        },
        {
            "description": "Live aggregated mid-rate for a crypto pair.",
            "id": "RATE",
            "name": "RATE",
            "parameters": [
                {
                    "description": "Base asset, e.g. \"BTC\".",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term/quote asset, e.g. \"USD\".",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Historical mid-rate for a crypto pair at a given ISO timestamp.",
            "id": "RATE_AT",
            "name": "RATE_AT",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "ISO 8601 timestamp, e.g. \"2026-01-15T12:00:00Z\".",
                    "name": "isoTimestamp",
                    "type": "string"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Live OHLC candles for a crypto pair as a 2-D array.",
            "id": "OHLC",
            "name": "OHLC",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "One of m1, m5, m15, m30, h1, h4, d1, w1, mo1.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Number of candles to return.",
                    "name": "count",
                    "type": "number"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Historical OHLC candles between two ISO dates.",
            "id": "OHLC_HISTORIC",
            "name": "OHLC_HISTORIC",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "From ISO timestamp.",
                    "name": "fromIso",
                    "type": "string"
                },
                {
                    "description": "To ISO timestamp.",
                    "name": "toIso",
                    "type": "string"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Exchange-specific ticker with bid/ask/volume.",
            "id": "TICKER",
            "name": "TICKER",
            "parameters": [
                {
                    "description": "Exchange id, e.g. \"binance\".",
                    "name": "exchange",
                    "type": "string"
                },
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Simple Moving Average for a crypto pair.",
            "id": "SMA",
            "name": "SMA",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Window length.",
                    "name": "window",
                    "type": "number"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Exponential Moving Average for a crypto pair.",
            "id": "EMA",
            "name": "EMA",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Window length.",
                    "name": "window",
                    "type": "number"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Relative Strength Index for a crypto pair.",
            "id": "RSI",
            "name": "RSI",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Window length.",
                    "name": "window",
                    "type": "number"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "MACD indicator (macd, signal, histogram).",
            "id": "MACD",
            "name": "MACD",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Bollinger Bands (upper, middle, lower).",
            "id": "BBANDS",
            "name": "BBANDS",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Window length.",
                    "name": "window",
                    "type": "number"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Liquidity score (0-100) and rating for a crypto pair.",
            "id": "LIQUIDITY",
            "name": "LIQUIDITY",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Pre-trade slippage estimate in basis points.",
            "id": "SLIPPAGE",
            "name": "SLIPPAGE",
            "parameters": [
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "\"buy\" or \"sell\".",
                    "name": "side",
                    "type": "string"
                },
                {
                    "description": "Notional amount in base units.",
                    "name": "amount",
                    "type": "number"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Latest funding rate for a perpetual on a given exchange.",
            "id": "FUNDING",
            "name": "FUNDING",
            "parameters": [
                {
                    "description": "Exchange id.",
                    "name": "exchange",
                    "type": "string"
                },
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Open interest for a perpetual on a given exchange.",
            "id": "OPEN_INTEREST",
            "name": "OPEN_INTEREST",
            "parameters": [
                {
                    "description": "Exchange id.",
                    "name": "exchange",
                    "type": "string"
                },
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Latest reference rate fixing.",
            "id": "REFRATE",
            "name": "REFRATE",
            "parameters": [
                {
                    "description": "One of \"fix\", \"tcut\", \"twap\".",
                    "name": "product",
                    "type": "string"
                },
                {
                    "description": "Base asset.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term asset.",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Live 24/7 derived fiat rate (e.g. GBP-USD).",
            "id": "FX",
            "name": "FX",
            "parameters": [
                {
                    "description": "Base currency, e.g. \"GBP\".",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term currency, e.g. \"USD\".",
                    "name": "term",
                    "type": "string"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Fiat247 OHLC candles.",
            "id": "FX_OHLC",
            "name": "FX_OHLC",
            "parameters": [
                {
                    "description": "Base currency.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term currency.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Number of candles.",
                    "name": "count",
                    "type": "number"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Fiat247 RSI indicator.",
            "id": "FX_RSI",
            "name": "FX_RSI",
            "parameters": [
                {
                    "description": "Base currency.",
                    "name": "base",
                    "type": "string"
                },
                {
                    "description": "Term currency.",
                    "name": "term",
                    "type": "string"
                },
                {
                    "description": "Candle timeframe.",
                    "name": "timeframe",
                    "type": "string"
                },
                {
                    "description": "Window length.",
                    "name": "window",
                    "type": "number"
                }
            ],
            "result": {
                "type": "number"
            }
        },
        {
            "description": "Forex trading sessions and their open/close status.",
            "id": "FOREX_SESSIONS",
            "name": "FOREX_SESSIONS",
            "parameters": [],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "Holidays for a given country.",
            "id": "HOLIDAYS",
            "name": "HOLIDAYS",
            "parameters": [
                {
                    "description": "ISO country code, e.g. \"US\".",
                    "name": "countryCode",
                    "type": "string"
                }
            ],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "All available crypto assets.",
            "id": "ASSETS",
            "name": "ASSETS",
            "parameters": [],
            "result": {
                "dimensionality": "matrix"
            }
        },
        {
            "description": "All supported exchanges.",
            "id": "EXCHANGES",
            "name": "EXCHANGES",
            "parameters": [],
            "result": {
                "dimensionality": "matrix"
            }
        }
    ]
}