> ## 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 Earnings Calendar Data

> US share-class symbols accept both `BRK.B` and `BRK-B`. When `symbol` is provided, matching scalar `symbol` fields in the response echo the request spelling.

[OpenAPI JSON Spec](/docs/output/v1_stocks_earnings-calendar_get.json)
Unified endpoint to retrieve earnings calendar data with optional filtering by symbol and/or date range.

**Filtering Options:**
- No parameters: first page across all symbols, newest first
- `symbol` only: first page for that symbol, newest first
- `start_time` and `end_time`: first page within the range, all symbols
- `symbol` + `start_time` + `end_time`: first page for that symbol within the range

Every shape returns one page, never the whole table — see paging below.

**Ordering and paging:** records come back newest-first by `date`
in every call shape; pass `sort_order=asc` for oldest-first. Page with
`limit` (default and maximum 1000) and `offset` — a response holding
exactly `limit` records means there may be more, so request the next
offset. The `pagination` block echoes the limit/offset in effect.

**Update polling:** pass both `updated_after` and `updated_before`
(Unix seconds) to get the rows whose data changed in that half-open
interval, ordered by `updated_at` then `id`. `symbol`, `start_time` and
`end_time` stay optional filters intersecting the window, and
`sort_order` is ignored — the order is what the cursor is built on.
Page by passing `pagination.cursor` back unchanged with the same bounds
and filters; `limit` may change on retry. An omitted cursor with
`has_more: false` means the window is drained. Start each new window
without the old cursor. `offset` is not allowed, `offset=0` included.
This is current-state polling, not a snapshot or a deletion feed:
overlap your windows, and dedupe by `id` on content rather than on the
key alone. Recognized US reports with a known fiscal period retain
their earliest existing canonical `id` across accepted session and
announcement-date changes. Both browse and polling return canonical
rows only; retained sibling IDs are internal aliases. Fiscal drift
is matched conservatively, while ambiguous, missing-period and foreign
reports remain separate. Historical downstream duplicates need an
explicit alias-based rekey: this API returns no alias mapping or
rekey/deletion events. IDs hard-deleted by the earlier implementation
require stored source or downstream evidence to reconcile.
Full contract: docs/api/earnings-calendar-updates.md.

**Response Data Structure**

- `data` ([]EarningsCalendarEvent): Flat array of earnings calendar records

**EarningsCalendarEvent fields:**
- `id` (int64): Retained canonical Arrays identifier for a recognized report
- `symbol` (string): Stock symbol (e.g., "AAPL", "MSFT")
- `date` (string): Earnings date in YYYY-MM-DD format
- `time` (string): Earnings call time (e.g., "AMC", "BMO")
- `fiscal_date_ending` (string): Fiscal period end date



## OpenAPI

````yaml /api-reference/openapi.json get /v1/stocks/earnings-calendar
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/earnings-calendar:
    get:
      tags:
        - Stock
      summary: Get Earnings Calendar Data
      description: >-
        US share-class symbols accept both `BRK.B` and `BRK-B`. When `symbol` is
        provided, matching scalar `symbol` fields in the response echo the
        request spelling.


        [OpenAPI JSON Spec](/docs/output/v1_stocks_earnings-calendar_get.json)

        Unified endpoint to retrieve earnings calendar data with optional
        filtering by symbol and/or date range.


        **Filtering Options:**

        - No parameters: first page across all symbols, newest first

        - `symbol` only: first page for that symbol, newest first

        - `start_time` and `end_time`: first page within the range, all symbols

        - `symbol` + `start_time` + `end_time`: first page for that symbol
        within the range


        Every shape returns one page, never the whole table — see paging below.


        **Ordering and paging:** records come back newest-first by `date`

        in every call shape; pass `sort_order=asc` for oldest-first. Page with

        `limit` (default and maximum 1000) and `offset` — a response holding

        exactly `limit` records means there may be more, so request the next

        offset. The `pagination` block echoes the limit/offset in effect.


        **Update polling:** pass both `updated_after` and `updated_before`

        (Unix seconds) to get the rows whose data changed in that half-open

        interval, ordered by `updated_at` then `id`. `symbol`, `start_time` and

        `end_time` stay optional filters intersecting the window, and

        `sort_order` is ignored — the order is what the cursor is built on.

        Page by passing `pagination.cursor` back unchanged with the same bounds

        and filters; `limit` may change on retry. An omitted cursor with

        `has_more: false` means the window is drained. Start each new window

        without the old cursor. `offset` is not allowed, `offset=0` included.

        This is current-state polling, not a snapshot or a deletion feed:

        overlap your windows, and dedupe by `id` on content rather than on the

        key alone. Recognized US reports with a known fiscal period retain

        their earliest existing canonical `id` across accepted session and

        announcement-date changes. Both browse and polling return canonical

        rows only; retained sibling IDs are internal aliases. Fiscal drift

        is matched conservatively, while ambiguous, missing-period and foreign

        reports remain separate. Historical downstream duplicates need an

        explicit alias-based rekey: this API returns no alias mapping or

        rekey/deletion events. IDs hard-deleted by the earlier implementation

        require stored source or downstream evidence to reconcile.

        Full contract: docs/api/earnings-calendar-updates.md.


        **Response Data Structure**


        - `data` ([]EarningsCalendarEvent): Flat array of earnings calendar
        records


        **EarningsCalendarEvent fields:**

        - `id` (int64): Retained canonical Arrays identifier for a recognized
        report

        - `symbol` (string): Stock symbol (e.g., "AAPL", "MSFT")

        - `date` (string): Earnings date in YYYY-MM-DD format

        - `time` (string): Earnings call time (e.g., "AMC", "BMO")

        - `fiscal_date_ending` (string): Fiscal period end date
      parameters:
        - description: >-
            Stock symbol (e.g., AAPL, MSFT) - optional. US share classes accept
            both BRK.B and BRK-B.
          in: query
          name: symbol
          schema:
            type: string
        - description: Start time (Unix timestamp) - optional, requires end_time
          in: query
          name: start_time
          schema:
            type: integer
            format: int64
        - description: End time (Unix timestamp) - optional, requires start_time
          in: query
          name: end_time
          schema:
            type: integer
            format: int64
        - description: Max records to return (1-1000, default 1000)
          in: query
          name: limit
          schema:
            type: integer
            format: int32
        - description: Records to skip (default 0)
          in: query
          name: offset
          schema:
            type: integer
            format: int32
        - description: 'Sort direction by date: asc or desc (default desc)'
          in: query
          name: sort_order
          schema:
            type: string
            enum:
              - asc
              - desc
        - description: Inclusive row-update bound (Unix seconds); requires updated_before
          in: query
          name: updated_after
          schema:
            type: integer
            format: int64
        - description: Exclusive row-update bound (Unix seconds); must exceed updated_after
          in: query
          name: updated_before
          schema:
            type: integer
            format: int64
        - description: Opaque update-window continuation; incompatible with offset
          in: query
          name: cursor
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved earnings calendar data
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      data:
                        items:
                          $ref: '#/components/schemas/model.EarningsCalendarEvent'
                        type: array
                    type: object
        '400':
          description: Invalid parameters
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/model.APIResponse'
                  - properties:
                      error:
                        $ref: '#/components/schemas/model.APIError'
                    type: object
        '408':
          description: Request timeout
          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
        '503':
          description: Update polling not available on this backend yet
          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.EarningsCalendarEvent:
      properties:
        created_at:
          type: string
        date:
          example: '2024-01-25'
          type: string
        fiscal_date_ending:
          type: string
        id:
          type: integer
        symbol:
          type: string
        time:
          type: string
        updated_at:
          type: string
        updated_from_date:
          type: string
      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

````

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