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

# Get Technical Metrics Screener

> [OpenAPI JSON Spec](/docs/output/v1_stocks_screener_technical-metrics_get.json)
Retrieve stocks filtered by technical metrics at a specific snapshot time. Returns stocks matching the specified metric type and value range.

**Overview:**
This endpoint filters stocks based on technical analysis metrics from the `market_metrics_1d`, `market_metrics_1w`, or `market_metrics_1m` tables. The snapshot parameter is a Unix timestamp (seconds) that will be used directly for querying data.

**Price Change Metrics (9 metrics):**
- `PRICE_CHANGE_1D`: Price change over 1 day (percentage)
- `PRICE_CHANGE_1W`: Price change over 1 week (percentage)
- `PRICE_CHANGE_1M`: Price change over 1 month (percentage)
- `PRICE_CHANGE_3M`: Price change over 3 months (percentage)
- `PRICE_CHANGE_6M`: Price change over 6 months (percentage)
- `PRICE_CHANGE_YTD`: Price change year-to-date (percentage)
- `PRICE_CHANGE_1Y`: Price change over 1 year (percentage)
- `PRICE_CHANGE_3Y`: Price change over 3 years (percentage)
- `PRICE_CHANGE_5Y`: Price change over 5 years (percentage)

**Volume Metrics (3 metrics):**
- `SHARES_VOLUME`: Trading volume in shares
- `DOLLAR_VOLUME`: Trading volume in dollars (price × volume)
- `AVERAGE_DAILY_DOLLAR_VOLUME`: Average daily dollar volume

**Moving Averages - Simple Moving Average (MA) (6 metrics):**
- `MA_5`: 5-day Simple Moving Average
- `MA_10`: 10-day Simple Moving Average
- `MA_20`: 20-day Simple Moving Average
- `MA_60`: 60-day Simple Moving Average
- `MA_120`: 120-day Simple Moving Average
- `MA_200`: 200-day Simple Moving Average

**Moving Averages - Exponential Moving Average (EMA) (6 metrics):**
- `EMA_5`: 5-day Exponential Moving Average
- `EMA_10`: 10-day Exponential Moving Average
- `EMA_20`: 20-day Exponential Moving Average
- `EMA_60`: 60-day Exponential Moving Average
- `EMA_120`: 120-day Exponential Moving Average
- `EMA_200`: 200-day Exponential Moving Average

**Momentum Indicators (1 metric):**
- `RSI_14`: Relative Strength Index (14-period) - Momentum oscillator that measures speed and magnitude of price changes (typically ranges from 0 to 100)

**MACD (Moving Average Convergence Divergence) Components (3 metrics):**
- `MACD_DIF`: MACD Line (DIF) - Difference between 12-day EMA and 26-day EMA
- `MACD_DEA`: Signal Line (DEA) - 9-day EMA of the MACD line
- `MACD_HIST`: MACD Histogram - Difference between MACD line and signal line

**Bollinger Bands Components (3 metrics):**
- `BOLLINGER_UPPER`: Upper Bollinger Band - Upper band of Bollinger Bands (20-day MA + 2 standard deviations)
- `BOLLINGER_MID`: Middle Bollinger Band - 20-day Simple Moving Average
- `BOLLINGER_LOWER`: Lower Bollinger Band - Lower band of Bollinger Bands (20-day MA - 2 standard deviations)

**Other Technical Indicators (5 metrics):**
- `VWAP_DAY`: Volume Weighted Average Price (Day) - Average price weighted by volume for the trading day
- `BETA`: Beta - Measure of stock's volatility relative to the market (typically S&P 500). Beta of 1 means stock moves with market
- `VOLATILITY_20`: Volatility (20-period) - Standard deviation of returns over 20 periods (annualized)
- `VOLATILITY_60`: Volatility (60-period) - Standard deviation of returns over 60 periods (annualized)
- `VOLATILITY_90`: Volatility (90-period) - Standard deviation of returns over 90 periods (annualized)

**Filtering:**
- Use `range_min` to filter for stocks where the metric value is greater than or equal to the minimum
- Use `range_max` to filter for stocks where the metric value is less than or equal to the maximum
- Both filters can be used together to create a range
- If neither filter is provided, all stocks matching the metric type will be returned

**Response Format:**
Returns an array of stocks with their symbol, snapshot time (Unix timestamp seconds, UTC), metric type, and metric value.
**ETF inclusion**: Liquid ETFs (30-day average daily dollar volume ≥ $10M, ~800 ETFs) are included in results across all 36 technical metrics.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/stocks/screener/technical-metrics
openapi: 3.0.0
info:
  contact: {}
  description: >-
    Welcome to Arrays!


    Arrays is a unified financial data layer for both financial institutions and
    retail users, delivering comprehensive market data across crypto and equity
    markets. Our datasets cover fundamentals, ETFs, options, crypto, and more.


    Visit [arrays.org](https://arrays.org) to request an API key and start your
    free trial. You can explore our full API offerings in the documentation
    below.


    For any questions regarding APIs or pricing, please contact
    support@arrays.org.
  title: Arrays API
  version: '1.0'
servers:
  - url: https://data-tools.prd.arrays.org/api
security: []
paths:
  /v1/stocks/screener/technical-metrics:
    get:
      tags:
        - Stock
      summary: Get Technical Metrics Screener
      description: >-
        [OpenAPI JSON
        Spec](/docs/output/v1_stocks_screener_technical-metrics_get.json)

        Retrieve stocks filtered by technical metrics at a specific snapshot
        time. Returns stocks matching the specified metric type and value range.


        **Overview:**

        This endpoint filters stocks based on technical analysis metrics from
        the `market_metrics_1d`, `market_metrics_1w`, or `market_metrics_1m`
        tables. The snapshot parameter is a Unix timestamp (seconds) that will
        be used directly for querying data.


        **Price Change Metrics (9 metrics):**

        - `PRICE_CHANGE_1D`: Price change over 1 day (percentage)

        - `PRICE_CHANGE_1W`: Price change over 1 week (percentage)

        - `PRICE_CHANGE_1M`: Price change over 1 month (percentage)

        - `PRICE_CHANGE_3M`: Price change over 3 months (percentage)

        - `PRICE_CHANGE_6M`: Price change over 6 months (percentage)

        - `PRICE_CHANGE_YTD`: Price change year-to-date (percentage)

        - `PRICE_CHANGE_1Y`: Price change over 1 year (percentage)

        - `PRICE_CHANGE_3Y`: Price change over 3 years (percentage)

        - `PRICE_CHANGE_5Y`: Price change over 5 years (percentage)


        **Volume Metrics (3 metrics):**

        - `SHARES_VOLUME`: Trading volume in shares

        - `DOLLAR_VOLUME`: Trading volume in dollars (price × volume)

        - `AVERAGE_DAILY_DOLLAR_VOLUME`: Average daily dollar volume


        **Moving Averages - Simple Moving Average (MA) (6 metrics):**

        - `MA_5`: 5-day Simple Moving Average

        - `MA_10`: 10-day Simple Moving Average

        - `MA_20`: 20-day Simple Moving Average

        - `MA_60`: 60-day Simple Moving Average

        - `MA_120`: 120-day Simple Moving Average

        - `MA_200`: 200-day Simple Moving Average


        **Moving Averages - Exponential Moving Average (EMA) (6 metrics):**

        - `EMA_5`: 5-day Exponential Moving Average

        - `EMA_10`: 10-day Exponential Moving Average

        - `EMA_20`: 20-day Exponential Moving Average

        - `EMA_60`: 60-day Exponential Moving Average

        - `EMA_120`: 120-day Exponential Moving Average

        - `EMA_200`: 200-day Exponential Moving Average


        **Momentum Indicators (1 metric):**

        - `RSI_14`: Relative Strength Index (14-period) - Momentum oscillator
        that measures speed and magnitude of price changes (typically ranges
        from 0 to 100)


        **MACD (Moving Average Convergence Divergence) Components (3 metrics):**

        - `MACD_DIF`: MACD Line (DIF) - Difference between 12-day EMA and 26-day
        EMA

        - `MACD_DEA`: Signal Line (DEA) - 9-day EMA of the MACD line

        - `MACD_HIST`: MACD Histogram - Difference between MACD line and signal
        line


        **Bollinger Bands Components (3 metrics):**

        - `BOLLINGER_UPPER`: Upper Bollinger Band - Upper band of Bollinger
        Bands (20-day MA + 2 standard deviations)

        - `BOLLINGER_MID`: Middle Bollinger Band - 20-day Simple Moving Average

        - `BOLLINGER_LOWER`: Lower Bollinger Band - Lower band of Bollinger
        Bands (20-day MA - 2 standard deviations)


        **Other Technical Indicators (5 metrics):**

        - `VWAP_DAY`: Volume Weighted Average Price (Day) - Average price
        weighted by volume for the trading day

        - `BETA`: Beta - Measure of stock's volatility relative to the market
        (typically S&P 500). Beta of 1 means stock moves with market

        - `VOLATILITY_20`: Volatility (20-period) - Standard deviation of
        returns over 20 periods (annualized)

        - `VOLATILITY_60`: Volatility (60-period) - Standard deviation of
        returns over 60 periods (annualized)

        - `VOLATILITY_90`: Volatility (90-period) - Standard deviation of
        returns over 90 periods (annualized)


        **Filtering:**

        - Use `range_min` to filter for stocks where the metric value is greater
        than or equal to the minimum

        - Use `range_max` to filter for stocks where the metric value is less
        than or equal to the maximum

        - Both filters can be used together to create a range

        - If neither filter is provided, all stocks matching the metric type
        will be returned


        **Response Format:**

        Returns an array of stocks with their symbol, snapshot time (Unix
        timestamp seconds, UTC), metric type, and metric value.

        **ETF inclusion**: Liquid ETFs (30-day average daily dollar volume ≥
        $10M, ~800 ETFs) are included in results across all 36 technical
        metrics.
      parameters:
        - description: >-
            Snapshot time (Unix timestamp in seconds, used directly for
            querying)
          in: query
          name: snapshot
          required: true
          schema:
            type: integer
        - description: >-
            Metric type. Valid values: PRICE_CHANGE_1D, PRICE_CHANGE_1W,
            PRICE_CHANGE_1M, PRICE_CHANGE_3M, PRICE_CHANGE_6M, PRICE_CHANGE_YTD,
            PRICE_CHANGE_1Y, PRICE_CHANGE_3Y, PRICE_CHANGE_5Y, SHARES_VOLUME,
            DOLLAR_VOLUME, AVERAGE_DAILY_DOLLAR_VOLUME, MA_5, MA_10, MA_20,
            MA_60, MA_120, MA_200, EMA_5, EMA_10, EMA_20, EMA_60, EMA_120,
            EMA_200, RSI_14, MACD_DIF, MACD_DEA, MACD_HIST, BOLLINGER_UPPER,
            BOLLINGER_MID, BOLLINGER_LOWER, VWAP_DAY, BETA, VOLATILITY_20,
            VOLATILITY_60, VOLATILITY_90
          in: query
          name: metric_type
          required: true
          schema:
            type: string
        - description: >-
            Minimum value filter (optional). Returns only stocks where metric
            value >= range_min
          in: query
          name: range_min
          schema:
            type: number
            format: float64
        - description: >-
            Maximum value filter (optional). Returns only stocks where metric
            value <= range_max
          in: query
          name: range_max
          schema:
            type: number
            format: float64
        - description: >-
            Sort order (optional). Valid values: ASC (ascending), DESC
            (descending). Defaults to DESC
          in: query
          name: order_by
          schema:
            type: string
        - description: >-
            Asset type filter. Valid values: stock (CS/ADRC), etf. Optional,
            defaults to stock.
          in: query
          name: symbol_type
          schema:
            type: string
            enum:
              - stock
              - etf
      responses:
        '200':
          description: Successfully retrieved technical metrics screener data
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/model.MetricScreenerData'
                        type: array
                    type: object
        '400':
          description: Invalid parameters (missing snapshot, invalid metric_type, etc.)
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
      security:
        - ApiKeyAuth: []
components:
  schemas:
    model.APIResponse:
      properties:
        data: {}
        error:
          $ref: '#/components/schemas/model.APIError'
        metadata: {}
        pagination: {}
        request_id:
          type: string
        success:
          type: boolean
      type: object
    model.MetricScreenerData:
      properties:
        date:
          description: Date string (YYYY-MM-DD)
          example: '2024-01-15'
          type: string
        metric:
          description: Metric type
          example: PE_RATIO
          type: string
        snapshot_time:
          description: Snapshot time (Unix timestamp seconds, UTC)
          example: 1705276800
          type: integer
        symbol:
          description: Stock symbol
          example: AAPL
          type: string
        value:
          description: Metric value
          example: 28.5
          type: number
      type: object
    model.APIError:
      properties:
        code:
          example: RESOURCE_NOT_FOUND
          type: string
        details:
          items:
            $ref: '#/components/schemas/model.APIErrorDetail'
          type: array
        docs_url:
          type: string
        examples:
          items:
            type: string
          type: array
        hint:
          type: string
        message:
          example: The requested resource was not found.
          type: string
        suggestions:
          items:
            type: string
          type: array
      type: object
    model.APIErrorDetail:
      properties:
        field:
          type: string
        got:
          type: string
        reason:
          type: string
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: 'API Key authentication. Example: "your-api-key-here"'
      in: header
      name: X-API-Key
      type: apiKey

````