> ## 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 the first one-minute bar at or after a moment, for many instruments

> [OpenAPI JSON Spec](/docs/output/v1_market_first-bars_post.json)
Returns, for each point, the first closed one-minute bar that opens at or after the point's `at`: its open time and open price. This is the price a market order placed at `at` would first trade at. Prices are on the current split basis, the same as GET /market/kline returns for that bar today, so they can be compared directly with a current price.

**Points:** 1 to 500, each a `trading_pair` (the same format as GET /market/kline) and `at` in unix seconds. Results are in request order, one per point.

**Supported pairs:**
| Scenario | trading_pair example | Session |
|---|---|---|
| US stock / ETF spot | `US_SPOT_NVDA_USD` | Extended hours (04:00-20:00 ET) |
| Non-US stock spot | `HK_SPOT_0700_HKD` (market = exchange suffix, symbol without suffix) | Exchange session |
| Binance spot | `BINANCE_SPOT_BTC_USDT` | 24/7 |
| Binance USDT perpetual | `BINANCE_PERP_BTC_USDT` | 24/7 |

The pair's currency must be the instrument's quote: `USD` for US stocks and ETFs, `USDT` for Binance, and for a non-US listing its exchange's quote as GET /market/trading-pairs publishes it (for example `HKD`, or `GBp` for London). Any other currency names a different instrument and is `INVALID_PARAMETER` on its point.

**Per point:** `time_open` and `price_open` are absent while no closed bar has opened since `at` (for example over a weekend). A point that cannot be read carries `error` (`INVALID_PARAMETER` for an unsupported or malformed pair, a currency that is not the instrument's quote, or an unknown symbol, `UNAVAILABLE` when its market's data could not be read) while the other points are still answered.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/market/first-bars
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/market/first-bars:
    post:
      tags:
        - Market
      summary: Get the first one-minute bar at or after a moment, for many instruments
      description: >-
        [OpenAPI JSON Spec](/docs/output/v1_market_first-bars_post.json)

        Returns, for each point, the first closed one-minute bar that opens at
        or after the point's `at`: its open time and open price. This is the
        price a market order placed at `at` would first trade at. Prices are on
        the current split basis, the same as GET /market/kline returns for that
        bar today, so they can be compared directly with a current price.


        **Points:** 1 to 500, each a `trading_pair` (the same format as GET
        /market/kline) and `at` in unix seconds. Results are in request order,
        one per point.


        **Supported pairs:**

        | Scenario | trading_pair example | Session |

        |---|---|---|

        | US stock / ETF spot | `US_SPOT_NVDA_USD` | Extended hours (04:00-20:00
        ET) |

        | Non-US stock spot | `HK_SPOT_0700_HKD` (market = exchange suffix,
        symbol without suffix) | Exchange session |

        | Binance spot | `BINANCE_SPOT_BTC_USDT` | 24/7 |

        | Binance USDT perpetual | `BINANCE_PERP_BTC_USDT` | 24/7 |


        The pair's currency must be the instrument's quote: `USD` for US stocks
        and ETFs, `USDT` for Binance, and for a non-US listing its exchange's
        quote as GET /market/trading-pairs publishes it (for example `HKD`, or
        `GBp` for London). Any other currency names a different instrument and
        is `INVALID_PARAMETER` on its point.


        **Per point:** `time_open` and `price_open` are absent while no closed
        bar has opened since `at` (for example over a weekend). A point that
        cannot be read carries `error` (`INVALID_PARAMETER` for an unsupported
        or malformed pair, a currency that is not the instrument's quote, or an
        unknown symbol, `UNAVAILABLE` when its market's data could not be read)
        while the other points are still answered.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/model.FirstBarsRequest'
        description: 'Points: trading_pair and at (unix seconds), 1 to 500'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/model.FirstBar'
                        type: array
                    type: object
        '400':
          description: >-
            VALIDATION_ERROR: invalid JSON, no points, more than 500, or at not
            positive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/model.APIResponse'
components:
  schemas:
    model.FirstBarsRequest:
      properties:
        points:
          description: Points to read, 1 to 500.
          items:
            $ref: '#/components/schemas/model.FirstBarPoint'
          maxItems: 500
          minItems: 1
          type: array
      required:
        - points
      type: object
    model.APIResponse:
      properties:
        data: {}
        error:
          $ref: '#/components/schemas/model.APIError'
        metadata: {}
        pagination: {}
        request_id:
          type: string
        success:
          type: boolean
      type: object
    model.FirstBar:
      properties:
        at:
          example: 1762956031
          type: integer
        error:
          $ref: '#/components/schemas/model.APIError'
        price_open:
          example: 188.25
          type: number
        quote_currency:
          example: USD
          type: string
        time_open:
          example: 1762956060
          type: integer
        trading_pair:
          example: US_SPOT_NVDA_USD
          type: string
      type: object
    model.FirstBarPoint:
      properties:
        at:
          description: At is the moment in unix seconds.
          example: 1762956031
          minimum: 1
          type: integer
        trading_pair:
          description: TradingPair names the instrument as GET /market/kline does.
          example: US_SPOT_NVDA_USD
          type: string
      required:
        - at
        - trading_pair
      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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.