Alpa.Crypto.MarketData (AlpaEx v1.0.3)

View Source

Cryptocurrency market data from the Alpaca Crypto Market Data API v1beta3.

Provides access to crypto bars, quotes, trades, snapshots, and orderbooks.

All endpoints use the data.alpaca.markets/v1beta3/crypto/{loc}/ base path, where {loc} defaults to "us".

Options

All functions accept an :loc option to specify the location (default: "us").

Summary

Functions

Get historical bars for a crypto symbol.

Get historical bars for a crypto symbol (raw response).

Get orderbooks for one or more crypto symbols.

Get historical quotes for a crypto symbol (raw response).

Get snapshots for one or more crypto symbols (raw response).

Get historical trades for a crypto symbol (raw response).

Get latest bars for a crypto symbol.

Get latest quotes for a crypto symbol.

Get latest trades for a crypto symbol.

Get historical quotes for a crypto symbol.

Get snapshots for one or more crypto symbols.

Get historical trades for a crypto symbol.

Functions

bars(symbol, opts \\ [])

@spec bars(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Bar.t()]} | {:error, Alpa.Error.t()}

Get historical bars for a crypto symbol.

Returns parsed Alpa.Models.Bar structs.

Required Parameters

  • symbol - Crypto symbol (e.g., "BTC/USD")

Options

  • :timeframe - Bar timeframe: "1Min", "5Min", "15Min", "30Min", "1Hour", "4Hour", "1Day", "1Week", "1Month"
  • :start - Start time (DateTime or ISO 8601 string)
  • :end - End time (DateTime or ISO 8601 string)
  • :limit - Max bars to return (default 1000, max 10000)
  • :page_token - Pagination token
  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.bars("BTC/USD", timeframe: "1Day", limit: 10)
{:ok, [%Alpa.Models.Bar{symbol: "BTC/USD", ...}]}

get_bars(symbol, opts \\ [])

@spec get_bars(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Alpa.Error.t()}

Get historical bars for a crypto symbol (raw response).

Examples

iex> Alpa.Crypto.MarketData.get_bars("BTC/USD", timeframe: "1Day", limit: 10)
{:ok, %{"bars" => ...}}

get_orderbook(symbols, opts \\ [])

@spec get_orderbook(
  String.t() | [String.t()],
  keyword()
) :: {:ok, map()} | {:error, Alpa.Error.t()}

Get orderbooks for one or more crypto symbols.

Required Parameters

  • symbols - A symbol string or list of symbols (e.g., "BTC/USD" or ["BTC/USD", "ETH/USD"])

Options

  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.get_orderbook("BTC/USD")
{:ok, %{"orderbooks" => ...}}

iex> Alpa.Crypto.MarketData.get_orderbook(["BTC/USD", "ETH/USD"])
{:ok, %{"orderbooks" => ...}}

get_quotes(symbol, opts \\ [])

@spec get_quotes(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Alpa.Error.t()}

Get historical quotes for a crypto symbol (raw response).

Examples

iex> Alpa.Crypto.MarketData.get_quotes("BTC/USD", limit: 10)
{:ok, %{"quotes" => ...}}

get_snapshots(symbols, opts \\ [])

@spec get_snapshots(
  String.t() | [String.t()],
  keyword()
) :: {:ok, map()} | {:error, Alpa.Error.t()}

Get snapshots for one or more crypto symbols (raw response).

Examples

iex> Alpa.Crypto.MarketData.get_snapshots("BTC/USD")
{:ok, %{"snapshots" => ...}}

get_trades(symbol, opts \\ [])

@spec get_trades(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Alpa.Error.t()}

Get historical trades for a crypto symbol (raw response).

Examples

iex> Alpa.Crypto.MarketData.get_trades("BTC/USD", limit: 10)
{:ok, %{"trades" => ...}}

latest_bars(symbol, opts \\ [])

@spec latest_bars(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Bar.t()]} | {:error, Alpa.Error.t()}

Get latest bars for a crypto symbol.

Returns parsed Alpa.Models.Bar structs.

Required Parameters

  • symbol - Crypto symbol (e.g., "BTC/USD")

Options

  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.latest_bars("BTC/USD")
{:ok, [%Alpa.Models.Bar{symbol: "BTC/USD", ...}]}

latest_quotes(symbol, opts \\ [])

@spec latest_quotes(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Quote.t()]} | {:error, Alpa.Error.t()}

Get latest quotes for a crypto symbol.

Returns parsed Alpa.Models.Quote structs.

Required Parameters

  • symbol - Crypto symbol (e.g., "BTC/USD")

Options

  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.latest_quotes("BTC/USD")
{:ok, [%Alpa.Models.Quote{symbol: "BTC/USD", ...}]}

latest_trades(symbol, opts \\ [])

@spec latest_trades(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Trade.t()]} | {:error, Alpa.Error.t()}

Get latest trades for a crypto symbol.

Returns parsed Alpa.Models.Trade structs.

Required Parameters

  • symbol - Crypto symbol (e.g., "BTC/USD")

Options

  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.latest_trades("BTC/USD")
{:ok, [%Alpa.Models.Trade{symbol: "BTC/USD", ...}]}

quotes(symbol, opts \\ [])

@spec quotes(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Quote.t()]} | {:error, Alpa.Error.t()}

Get historical quotes for a crypto symbol.

Returns parsed Alpa.Models.Quote structs.

Required Parameters

  • symbol - Crypto symbol (e.g., "BTC/USD")

Options

  • :start - Start time (DateTime or ISO 8601 string)
  • :end - End time (DateTime or ISO 8601 string)
  • :limit - Max quotes to return (default 1000, max 10000)
  • :page_token - Pagination token
  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.quotes("BTC/USD", limit: 10)
{:ok, [%Alpa.Models.Quote{symbol: "BTC/USD", ...}]}

snapshots(symbols, opts \\ [])

@spec snapshots(
  String.t() | [String.t()],
  keyword()
) ::
  {:ok, %{required(String.t()) => Alpa.Models.Snapshot.t()}}
  | {:error, Alpa.Error.t()}

Get snapshots for one or more crypto symbols.

Returns parsed Alpa.Models.Snapshot structs.

Required Parameters

  • symbols - A symbol string or list of symbols (e.g., "BTC/USD" or ["BTC/USD", "ETH/USD"])

Options

  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.snapshots("BTC/USD")
{:ok, %{"BTC/USD" => %Alpa.Models.Snapshot{...}}}

iex> Alpa.Crypto.MarketData.snapshots(["BTC/USD", "ETH/USD"])
{:ok, %{"BTC/USD" => %Alpa.Models.Snapshot{...}, "ETH/USD" => %Alpa.Models.Snapshot{...}}}

trades(symbol, opts \\ [])

@spec trades(
  String.t(),
  keyword()
) :: {:ok, [Alpa.Models.Trade.t()]} | {:error, Alpa.Error.t()}

Get historical trades for a crypto symbol.

Returns parsed Alpa.Models.Trade structs.

Required Parameters

  • symbol - Crypto symbol (e.g., "BTC/USD")

Options

  • :start - Start time (DateTime or ISO 8601 string)
  • :end - End time (DateTime or ISO 8601 string)
  • :limit - Max trades to return (default 1000, max 10000)
  • :page_token - Pagination token
  • :loc - Location (default: "us")

Examples

iex> Alpa.Crypto.MarketData.trades("BTC/USD", limit: 10)
{:ok, [%Alpa.Models.Trade{symbol: "BTC/USD", ...}]}