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

# Get Volume Feed

> Retrieve historical trading volume data by exchange over time

## Overview

Returns historical trading volume data for a token across different exchanges over time with configurable resolution. Use this to build volume trend charts.

## Path Parameters

<ParamField path="tokenAddress" type="string" required>
  Token contract address (hex format)
</ParamField>

## Query Parameters

<ParamField query="startDate" type="string" required>
  Start date (ISO 8601 format)
</ParamField>

<ParamField query="endDate" type="string" required>
  End date (ISO 8601 format)
</ParamField>

<ParamField query="resolution" type="string" default="1H">
  Data point frequency: `1`, `5`, `15`, `1H`, `4H`, `1D`, `1W`
</ParamField>

## Response

Returns an array of volume data points by exchange (`ExchangeDataPoint`).

<ResponseField name="date" type="string" required>
  ISO 8601 timestamp
</ResponseField>

<ResponseField name="value" type="number" required>
  Trading volume in token amount
</ResponseField>

<ResponseField name="valueUsd" type="number" required>
  Trading volume in USD
</ResponseField>

<ResponseField name="exchange" type="string" required>
  Exchange/DEX name
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://starknet.impulse.avnu.fi/v3/tokens/0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7/exchange-volumes/line?startDate=2024-02-01T00:00:00Z&endDate=2024-02-14T00:00:00Z&resolution=1D"
  ```

  ```typescript TypeScript theme={null}
  const tokenAddress = '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7';
  const endDate = new Date();
  const startDate = new Date(endDate.getTime() - 7 * 24 * 60 * 60 * 1000);

  const params = new URLSearchParams({
    startDate: startDate.toISOString(),
    endDate: endDate.toISOString(),
    resolution: '4H'
  });

  const response = await fetch(
    `https://starknet.impulse.avnu.fi/v3/tokens/${tokenAddress}/exchange-volumes/line?${params}`
  );

  const volumeData = await response.json();

  // Group by exchange for charting
  const byExchange = volumeData.reduce((acc, item) => {
    if (!acc[item.exchange]) acc[item.exchange] = [];
    acc[item.exchange].push({ date: item.date, value: item.valueUsd });
    return acc;
  }, {});

  console.log(`Exchanges: ${Object.keys(byExchange).join(', ')}`);
  ```

  ```python Python theme={null}
  import requests
  from datetime import datetime, timedelta

  token_address = '0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7'
  end_date = datetime.now()
  start_date = end_date - timedelta(days=7)

  params = {
      'startDate': start_date.isoformat() + 'Z',
      'endDate': end_date.isoformat() + 'Z',
      'resolution': '4H'
  }

  response = requests.get(
      f'https://starknet.impulse.avnu.fi/v3/tokens/{token_address}/exchange-volumes/line',
      params=params
  )

  volume_data = response.json()
  print(f"Fetched {len(volume_data)} volume data points")
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  [
    {
      "date": "2024-02-13T00:00:00Z",
      "value": 256.789,
      "valueUsd": 625000,
      "exchange": "Ekubo"
    },
    {
      "date": "2024-02-13T00:00:00Z",
      "value": 184.567,
      "valueUsd": 450000,
      "exchange": "JediSwap"
    },
    {
      "date": "2024-02-13T04:00:00Z",
      "value": 238.456,
      "valueUsd": 580000,
      "exchange": "Ekubo"
    },
    {
      "date": "2024-02-13T04:00:00Z",
      "value": 172.345,
      "valueUsd": 420000,
      "exchange": "JediSwap"
    }
  ]
  ```
</ResponseExample>
