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

# Get volume nodes for symbol

> Detect and return volume nodes (HVN/LVN) for a symbol.

## Node Types

- **HVN (High Volume Node)**: Areas of price acceptance/consolidation (support/resistance)
  - Price tends to consolidate at these levels
  - Detected when bucket volume exceeds `hvn_threshold` standard deviations above mean

- **LVN (Low Volume Node)**: Areas of price rejection (breakout/breakdown zones)
  - Price tends to move quickly through these levels
  - Detected when bucket volume falls below `lvn_threshold` standard deviations below mean

## Detection Algorithm

1. Fetch volume buckets from `volume_by_price_bucket` table
2. Calculate mean and standard deviation of bucket volumes
3. Classify buckets as HVN (>hvn_threshold σ) or LVN (<lvn_threshold σ)
4. Cluster contiguous buckets into nodes
5. Filter nodes with at least `min_buckets` contiguous buckets
6. Rank nodes by total volume

## Session Types

- **prior**: Previous day's completed volume profile (default)
- **developing**: Current day's intraday volume profile

## Performance

Prior session nodes may be cached in `volume_nodes` table for faster retrieval.
Developing session nodes are always computed on-demand.

## Performance Target

<200ms response time.



## OpenAPI

````yaml /api/openapi.json get /api/graph/v1/volume-nodes/{symbol}
openapi: 3.1.0
info:
  title: Sequency Graph API
  description: >

    # Sequency Graph-Native Trading API


    Graph-native API for trading intelligence, built on FalkorDB.


    ## Features


    - **Screener**: Filter stocks using graph-native queries with relationship
    expansion

    - **Stock Detail**: Complete stock context with all relationships

    - **Confluence Scoring**: Setup quality assessment with weighted components

    - **Strategy Matching**: Find matching options strategies via graph
    traversal

    - **Market Context**: Current market-wide context for trading decisions


    ## Data Sources


    All data is sourced from the FalkorDB knowledge graph, populated by:

    - Pattern detector (Go) - Technical indicators, patterns

    - Graph sync service - Levels, volume profiles, news, day classification
  version: 1.0.0
servers: []
security: []
paths:
  /api/graph/v1/volume-nodes/{symbol}:
    get:
      tags:
        - Volume Nodes
      summary: Get volume nodes for symbol
      description: >-
        Detect and return volume nodes (HVN/LVN) for a symbol.


        ## Node Types


        - **HVN (High Volume Node)**: Areas of price acceptance/consolidation
        (support/resistance)
          - Price tends to consolidate at these levels
          - Detected when bucket volume exceeds `hvn_threshold` standard deviations above mean

        - **LVN (Low Volume Node)**: Areas of price rejection
        (breakout/breakdown zones)
          - Price tends to move quickly through these levels
          - Detected when bucket volume falls below `lvn_threshold` standard deviations below mean

        ## Detection Algorithm


        1. Fetch volume buckets from `volume_by_price_bucket` table

        2. Calculate mean and standard deviation of bucket volumes

        3. Classify buckets as HVN (>hvn_threshold σ) or LVN (<lvn_threshold σ)

        4. Cluster contiguous buckets into nodes

        5. Filter nodes with at least `min_buckets` contiguous buckets

        6. Rank nodes by total volume


        ## Session Types


        - **prior**: Previous day's completed volume profile (default)

        - **developing**: Current day's intraday volume profile


        ## Performance


        Prior session nodes may be cached in `volume_nodes` table for faster
        retrieval.

        Developing session nodes are always computed on-demand.


        ## Performance Target


        <200ms response time.
      operationId: get_volume_nodes_api_graph_v1_volume_nodes__symbol__get
      parameters:
        - name: symbol
          in: path
          required: true
          schema:
            type: string
            title: Symbol
        - name: trade_date
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                format: date
              - type: 'null'
            description: Date (defaults to most recent with data)
            title: Trade Date
          description: Date (defaults to most recent with data)
        - name: session_type
          in: query
          required: false
          schema:
            type: string
            description: 'Session type: prior or developing'
            default: prior
            title: Session Type
          description: 'Session type: prior or developing'
        - name: hvn_threshold
          in: query
          required: false
          schema:
            anyOf:
              - type: number
                maximum: 3
                minimum: 0
              - type: string
                pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            description: Sigma above mean for HVN classification
            default: '1.0'
            title: Hvn Threshold
          description: Sigma above mean for HVN classification
        - name: lvn_threshold
          in: query
          required: false
          schema:
            anyOf:
              - type: number
                maximum: 0
                minimum: -3
              - type: string
                pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            description: Sigma below mean for LVN classification
            default: '-1.0'
            title: Lvn Threshold
          description: Sigma below mean for LVN classification
        - name: min_buckets
          in: query
          required: false
          schema:
            type: integer
            maximum: 10
            minimum: 1
            description: Minimum contiguous buckets for a valid node
            default: 2
            title: Min Buckets
          description: Minimum contiguous buckets for a valid node
      responses:
        '200':
          description: Volume nodes detected
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VolumeNodesResponse'
        '404':
          description: No volume bucket data found for symbol
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '503':
          description: Data pipeline stale - service unavailable
components:
  schemas:
    VolumeNodesResponse:
      properties:
        symbol:
          type: string
          title: Symbol
        trade_date:
          type: string
          format: date
          title: Trade Date
        session_type:
          type: string
          title: Session Type
        nodes:
          items:
            $ref: '#/components/schemas/VolumeNode'
          type: array
          title: Nodes
          description: All detected volume nodes
        hvn_count:
          type: integer
          title: Hvn Count
          description: Number of HVN nodes
        lvn_count:
          type: integer
          title: Lvn Count
          description: Number of LVN nodes
        context:
          anyOf:
            - $ref: '#/components/schemas/VolumeNodeContext'
            - type: 'null'
          description: Optional full context with profile data
        hvn_threshold:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Hvn Threshold
          default: '1.0'
        lvn_threshold:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Lvn Threshold
          default: '-1.0'
        min_buckets:
          type: integer
          title: Min Buckets
          default: 2
      type: object
      required:
        - symbol
        - trade_date
        - session_type
        - hvn_count
        - lvn_count
      title: VolumeNodesResponse
      description: Response for volume nodes query.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VolumeNode:
      properties:
        id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Id
        symbol:
          type: string
          title: Symbol
        trade_date:
          type: string
          format: date
          title: Trade Date
        session_type:
          type: string
          title: Session Type
          description: prior or developing
          default: prior
        node_type:
          $ref: '#/components/schemas/NodeType'
        price_low:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Price Low
          description: Lower price bound of the node
        price_high:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Price High
          description: Upper price bound of the node
        price_mid:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Price Mid
          description: Midpoint price of the node
        node_volume:
          type: integer
          title: Node Volume
          description: Total volume within the node
        node_volume_pct:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Node Volume Pct
          description: '% of session volume'
        bucket_count:
          type: integer
          title: Bucket Count
          description: Number of price buckets in the node
        avg_bucket_volume:
          anyOf:
            - type: integer
            - type: 'null'
          title: Avg Bucket Volume
          description: Average volume per bucket
        node_rank:
          anyOf:
            - type: integer
            - type: 'null'
          title: Node Rank
          description: Rank within node type (1=most significant)
        z_score:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Z Score
          description: Standard deviations from mean bucket volume
        overlaps_value_area:
          type: boolean
          title: Overlaps Value Area
          description: Whether node overlaps the value area
          default: false
        contains_poc:
          type: boolean
          title: Contains Poc
          description: Whether node contains the POC
          default: false
        computed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Computed At
      type: object
      required:
        - symbol
        - trade_date
        - node_type
        - price_low
        - price_high
        - price_mid
        - node_volume
        - bucket_count
        - z_score
      title: VolumeNode
      description: Single volume node detection result.
    VolumeNodeContext:
      properties:
        symbol:
          type: string
          title: Symbol
        trade_date:
          type: string
          format: date
          title: Trade Date
        session_type:
          type: string
          title: Session Type
        poc:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Poc
          description: Point of Control
        vah:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Vah
          description: Value Area High
        val:
          anyOf:
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
            - type: 'null'
          title: Val
          description: Value Area Low
        profile_shape:
          anyOf:
            - type: string
            - type: 'null'
          title: Profile Shape
          description: 'Volume distribution shape: normal, p_shaped, d_shaped, b_shaped'
        hvn_nodes:
          items:
            $ref: '#/components/schemas/VolumeNode'
          type: array
          title: Hvn Nodes
          description: High Volume Nodes (support/resistance)
        lvn_nodes:
          items:
            $ref: '#/components/schemas/VolumeNode'
          type: array
          title: Lvn Nodes
          description: Low Volume Nodes (breakout zones)
        hvn_count:
          type: integer
          title: Hvn Count
          description: Number of HVN nodes detected
          default: 0
        lvn_count:
          type: integer
          title: Lvn Count
          description: Number of LVN nodes detected
          default: 0
        strongest_hvn:
          anyOf:
            - $ref: '#/components/schemas/VolumeNode'
            - type: 'null'
          description: Most significant HVN by volume
        strongest_lvn:
          anyOf:
            - $ref: '#/components/schemas/VolumeNode'
            - type: 'null'
          description: Most significant LVN by volume
      type: object
      required:
        - symbol
        - trade_date
        - session_type
      title: VolumeNodeContext
      description: Volume nodes with full volume profile context.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    NodeType:
      type: string
      enum:
        - HVN
        - LVN
      title: NodeType
      description: Volume node type classification.

````