> ## Documentation Index
> Fetch the complete documentation index at: https://lava.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Alpha Vantage

> Market data API for stocks, forex, and cryptocurrency.

Market data API for stocks, forex, and cryptocurrency. Best for historical time-series (intraday to monthly), technical indicators (SMA, RSI, MACD), fundamental data, and earnings. Distinguishes itself from paid market-data vendors with broad global coverage and simple REST access via a single /query endpoint parameterized by function.

12 example endpoints available through Lava's AI Gateway. See the [Alpha Vantage API docs](https://www.alphavantage.co/documentation/) for full documentation.

<Info>Supports both **managed** (Lava's API keys) and **unmanaged** (bring your own credentials) mode.</Info>

<Info>This is a **catch-all provider** — any valid URL under `https://www.alphavantage.co` is supported. Alpha Vantage API. Construct URL as [https://www.alphavantage.co/query?function=\&#123;FUNCTION\&#125;&\&#123;params\&#125](https://www.alphavantage.co/query?function=\&#123;FUNCTION\&#125;&\&#123;params\&#125);. Example functions: TIME\_SERIES\_DAILY, GLOBAL\_QUOTE, SYMBOL\_SEARCH, CURRENCY\_EXCHANGE\_RATE, DIGITAL\_CURRENCY\_DAILY, SMA, RSI, MACD, NEWS\_SENTIMENT, OVERVIEW, EARNINGS, BALANCE\_SHEET, INCOME\_STATEMENT, CASH\_FLOW. The apikey query param is added automatically. Lava slims long-history responses by default — fundamentals (BALANCE\_SHEET / INCOME\_STATEMENT / CASH\_FLOW / EARNINGS) cap at 12 most-recent quarterly + 5 annual entries, time series and indicators cap at 100 most-recent dated points, NEWS\_SENTIMENT caps at 20 articles. Override per call with filter.\_lava\_max\_quarters, \_lava\_max\_annual, \_lava\_max\_points, \_lava\_max\_articles, or pass filter.mode="full" for the raw payload. The endpoints below are curated examples.</Info>

## Endpoints

### Daily OHLCV time series for a stock symbol. Lava caps `Time Series (Daily)` at the 100 most-recent dates by default and emits a `_lava_truncated` hint on the response when slimming applies; override with filter.\_lava\_max\_points or filter.mode="full".

**GET** `https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&outputsize=compact` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&outputsize=compact', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DTIME_SERIES_DAILY%26symbol%3DIBM%26outputsize%3Dcompact" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Latest price and volume for a single symbol

**GET** `https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=IBM` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=IBM', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DGLOBAL_QUOTE%26symbol%3DIBM" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Search for stock symbols by keywords

**GET** `https://www.alphavantage.co/query?function=SYMBOL_SEARCH&keywords=tesla` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=SYMBOL_SEARCH&keywords=tesla', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DSYMBOL_SEARCH%26keywords%3Dtesla" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Realtime exchange rate between two currencies

**GET** `https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=JPY` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=USD&to_currency=JPY', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DCURRENCY_EXCHANGE_RATE%26from_currency%3DUSD%26to_currency%3DJPY" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Daily time series for a digital currency. Lava caps the dated dictionary at the 100 most-recent dates by default and emits a `_lava_truncated` hint when slimming applies; override with filter.\_lava\_max\_points or filter.mode="full".

**GET** `https://www.alphavantage.co/query?function=DIGITAL_CURRENCY_DAILY&symbol=BTC&market=USD` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=DIGITAL_CURRENCY_DAILY&symbol=BTC&market=USD', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DDIGITAL_CURRENCY_DAILY%26symbol%3DBTC%26market%3DUSD" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Simple moving average technical indicator. Lava caps the `Technical Analysis: SMA` dated dictionary at the 100 most-recent dates by default and emits a `_lava_truncated` hint when slimming applies; override with filter.\_lava\_max\_points or filter.mode="full".

**GET** `https://www.alphavantage.co/query?function=SMA&symbol=IBM&interval=daily&time_period=20&series_type=close` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=SMA&symbol=IBM&interval=daily&time_period=20&series_type=close', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DSMA%26symbol%3DIBM%26interval%3Ddaily%26time_period%3D20%26series_type%3Dclose" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Company fundamentals, ratios, and key metrics

**GET** `https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=OVERVIEW&symbol=IBM', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DOVERVIEW%26symbol%3DIBM" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Market news and sentiment scores by topic or ticker. Lava caps the `feed` array at 20 articles by default and emits a `_lava_truncated` hint on the response when slimming applies; override with filter.\_lava\_max\_articles or filter.mode="full".

**GET** `https://www.alphavantage.co/query?function=NEWS_SENTIMENT&tickers=AAPL,MSFT` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=NEWS_SENTIMENT&tickers=AAPL,MSFT', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DNEWS_SENTIMENT%26tickers%3DAAPL%2CMSFT" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Annual and quarterly balance sheet for a public company (cash, investments, debt, equity). Lava returns the 12 most recent quarters and 5 most recent annual reports by default (newest-first); override with filter.\_lava\_max\_quarters / \_lava\_max\_annual or pass filter.mode="full" for the raw history (30-150+ quarters back to \~2006).

**GET** `https://www.alphavantage.co/query?function=BALANCE_SHEET&symbol=IBM` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=BALANCE_SHEET&symbol=IBM', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DBALANCE_SHEET%26symbol%3DIBM" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Annual and quarterly income statement for a public company (revenue, margins, EPS). Lava returns the 12 most recent quarters and 5 most recent annual reports by default (newest-first); override with filter.\_lava\_max\_quarters / \_lava\_max\_annual or pass filter.mode="full" for the raw history.

**GET** `https://www.alphavantage.co/query?function=INCOME_STATEMENT&symbol=IBM` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=INCOME_STATEMENT&symbol=IBM', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DINCOME_STATEMENT%26symbol%3DIBM" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Annual and quarterly cash flow statement for a public company. Lava returns the 12 most recent quarters and 5 most recent annual reports by default (newest-first); override with filter.\_lava\_max\_quarters / \_lava\_max\_annual or pass filter.mode="full" for the raw history.

**GET** `https://www.alphavantage.co/query?function=CASH_FLOW&symbol=IBM` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=CASH_FLOW&symbol=IBM', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DCASH_FLOW%26symbol%3DIBM" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

### Annual and quarterly earnings (EPS history) for a public company. Lava returns the 12 most recent quarters and 5 most recent annual entries by default (newest-first); override with filter.\_lava\_max\_quarters / \_lava\_max\_annual or pass filter.mode="full" for the raw history.

**GET** `https://www.alphavantage.co/query?function=EARNINGS&symbol=IBM` — \$0.005 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://www.alphavantage.co/query?function=EARNINGS&symbol=IBM', { method: 'GET' });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl "https://api.lava.so/v1/forward?u=https%3A%2F%2Fwww.alphavantage.co%2Fquery%3Ffunction%3DEARNINGS%26symbol%3DIBM" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY"
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
