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

# Japan equity events

> Dividends and scheduled earnings releases within ±30 days of today (Tokyo
time), nearest first.

A dividend is dated by its **ex-dividend date**. `status: expected` is
estimated from the company's own forecast (J-Quants); `status: confirmed` means
the actual payout is published (Yahoo Finance). `items` is empty when no event
falls in the window.




## OpenAPI

````yaml /openapi.yaml get /openapi/v1/market/{market}/equities/{code}/events
openapi: 3.1.0
info:
  title: HayInsights Open API
  version: 0.1.0
  description: >
    Programmatic access to the **HayInsights** financial-data hub — commodities,

    crypto, ETF, FX, macroeconomic, real-estate, news, economic-calendar and

    market-index datasets, served from a single API surface under
    `/openapi/v1/*`.


    This specification is the **single source of truth** for the public API

    surface — shared by SDK codegen, the reference docs, and (later) the mock

    server / contract tests.


    ## Authentication


    Every request must carry your API key in the `X-API-Key` header. There is a

    single authentication tier — no request signing. Create and manage keys in

    the HayInsights dashboard (Account → API keys). See **Authentication**.


    ## Plans & quota


    Access to each data domain and your request quota are governed by the

    subscription plan attached to your key. Each endpoint consumes a
    **weighted**

    amount of your per-minute quota; every response carries `X-RateLimit-*`

    headers. See **Rate limits** and **Plans & features**.
  contact: {}
servers:
  - url: https://api-v2.hayinsights.com
    description: Production
security:
  - HayInsightsApiKey: []
tags:
  - name: Commodities
    description: >-
      Spot prices, top movers, gold–DXY correlation and historical series for
      energy, metals and agricultural commodities.
  - name: Crypto
    description: >-
      Crypto market overview, dominance, bubble map, on-chain and derivatives
      metrics.
  - name: ETF
    description: >-
      Exchange-traded fund listings, performance & net-flow rankings, heatmap,
      holdings, NAV growth and fund composition.
  - name: FX
    description: >-
      Foreign-exchange summary, live table, 90-day correlation matrix and the
      emerging-market stress monitor.
  - name: Macro
    description: >-
      Macroeconomic indicators — GDP, CPI/PCE, exchange rates, population,
      central-government debt and policy rates / bond yields.
  - name: Real Estate
    description: >-
      Land prices, transaction-level records, administrative geography
      (provinces / wards) and choropleth GeoJSON, by country.
  - name: News
    description: >-
      Market news headlines with per-article sentiment, plus an aggregate
      sentiment reading over a rolling window.
  - name: Calendar
    description: >-
      Economic calendar — rate decisions, CPI and GDP releases, market holidays
      and asset-level events.
  - name: Market
    description: >-
      Index snapshots and global index closes — levels and daily moves for S&P
      500, Nasdaq, Nikkei, VN-Index and others.
  - name: Equities
    description: >-
      Japanese stock detail (Tokyo Stock Exchange) — end-of-day snapshot,
      corporate events, daily prices, financial statements and sector peers.
paths:
  /openapi/v1/market/{market}/equities/{code}/events:
    get:
      tags:
        - Equities
      summary: Japan equity events
      description: >
        Dividends and scheduled earnings releases within ±30 days of today
        (Tokyo

        time), nearest first.


        A dividend is dated by its **ex-dividend date**. `status: expected` is

        estimated from the company's own forecast (J-Quants); `status:
        confirmed` means

        the actual payout is published (Yahoo Finance). `items` is empty when no
        event

        falls in the window.
      operationId: equityEvents
      parameters:
        - name: market
          in: path
          required: true
          description: Market code. Only `jp` (Tokyo Stock Exchange) is supported for now.
          schema:
            type: string
            enum:
              - jp
            example: jp
        - name: code
          in: path
          required: true
          description: >-
            Stock code — the 4-character ticker (`7203`) or the 5-character
            J-Quants code (`72030`).
          schema:
            type: string
            example: '7203'
      responses:
        '200':
          description: Events around today for the requested stock.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EquityEventsResponse'
              example:
                success: true
                statusCode: 200
                data:
                  asOf: '2026-10-01'
                  window:
                    from: '2026-09-01'
                    to: '2026-10-31'
                  items:
                    - type: dividend
                      date: '2026-09-29'
                      exDate: '2026-09-29'
                      recordDate: '2026-09-30'
                      dividendPeriod: 2Q
                      amountPerShare: 50
                      currency: JPY
                      status: confirmed
                    - type: earnings_release
                      date: '2026-11-05'
                      fiscalPeriod: 2Q
                      status: scheduled
                meta:
                  source:
                    - jquants:/v2/fins/summary
                    - yahoo:v8/finance/chart
                    - jquants:/v2/fins/earnings-date
                  as_of: '2026-10-01'
                  unit: JPY/share
                  classification: RAW+COMPUTED
                  formula_version: jp-dividend-exdate-v1
                  was_restated: false
                  served_from_cache: true
                  cache_expires_at: '2026-10-01T14:00:00.000Z'
                  timestamp: '2026-10-01T08:00:00.000Z'
        '400':
          description: Unsupported market, or an invalid query parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                success: false
                statusCode: 400
                error:
                  code: MARKET_NOT_SUPPORTED
                  message: Thị trường "us" chưa được hỗ trợ — hiện chỉ có jp
                meta:
                  error: Bad Request
                  statusCode: 400
                  timestamp: '2026-10-01T08:00:00.000Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          description: The stock code is not in the J-Quants listing or is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
              example:
                success: false
                statusCode: 404
                error:
                  code: EQUITY_NOT_FOUND
                  message: Không tìm thấy mã cổ phiếu 99999
                meta:
                  error: Not Found
                  statusCode: 404
                  timestamp: '2026-10-01T08:00:00.000Z'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    EquityEventsResponse:
      allOf:
        - $ref: '#/components/schemas/EnvelopeBase'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/EquityEvents'
            meta:
              $ref: '#/components/schemas/EquityMeta'
    ErrorBody:
      type: object
      description: Standard error envelope returned for every 4xx / 5xx response.
      required:
        - success
        - statusCode
        - error
      properties:
        success:
          type: boolean
          const: false
          description: Always `false` for an error response.
          example: false
        statusCode:
          type: integer
          description: Mirrors the HTTP status code.
          example: 401
        error:
          $ref: '#/components/schemas/ErrorDetail'
        meta:
          $ref: '#/components/schemas/Meta'
    EnvelopeBase:
      type: object
      description: >
        Standard success envelope shared by every endpoint. Each operation's
        response

        wrapper extends this (via `allOf`) and adds a typed `data` property.
      required:
        - success
        - statusCode
      properties:
        success:
          type: boolean
          const: true
          description: Always `true` for a successful response.
          example: true
        statusCode:
          type: integer
          description: Mirrors the HTTP status code.
          example: 200
        meta:
          $ref: '#/components/schemas/Meta'
    EquityEvents:
      type: object
      description: >
        Dividends and earnings releases within ±30 days of today (Tokyo time),
        nearest

        first. `items` is empty when nothing falls in the window.
      required:
        - asOf
        - window
        - items
      properties:
        asOf:
          type: string
          format: date
          description: Today in Tokyo time — the centre of the window.
          example: '2026-10-01'
        window:
          type: object
          properties:
            from:
              type: string
              format: date
              example: '2026-09-01'
            to:
              type: string
              format: date
              example: '2026-10-31'
        items:
          type: array
          items:
            $ref: '#/components/schemas/EquityEvent'
    EquityMeta:
      description: >
        Response metadata for the Equities domain. On top of `timestamp`, every
        equities

        response says where the numbers came from and how fresh they are.
      allOf:
        - $ref: '#/components/schemas/Meta'
        - type: object
          properties:
            source:
              type: array
              items:
                type: string
              description: Upstream datasets behind the payload (J-Quants, Yahoo Finance).
              example:
                - jquants:/v2/equities/bars/daily
            as_of:
              type:
                - string
                - 'null'
              description: >-
                Date the data refers to (latest trading date, latest fiscal
                period, …).
              example: '2026-09-30'
            unit:
              type: string
              description: Currency or unit of the numeric fields (`JPY`, `JPY/share`).
              example: JPY
            classification:
              type: string
              enum:
                - RAW
                - COMPUTED
                - RAW+COMPUTED
              description: >-
                Whether values are passed through as published, computed by
                HayInsights, or both.
              example: RAW+COMPUTED
            formula_version:
              type:
                - string
                - 'null'
              description: Version tag of the formulas used for computed fields.
              example: jp-split-adjust-v1
            was_restated:
              type: boolean
              description: Whether any value was restated after first publication.
              example: false
            served_from_cache:
              type: boolean
              description: Whether the response was served from cache.
              example: true
            cache_expires_at:
              type:
                - string
                - 'null'
              format: date-time
              description: >-
                When the cached copy expires (6 h; 24 h for financial
                statements).
              example: '2026-10-01T14:00:00.000Z'
    ErrorDetail:
      type: object
      description: Error detail object carried under `error` in the error envelope.
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: >
            Machine-readable error code. Specific for authentication / quota
            errors

            (e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,

            `RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the
            code

            is currently `INTERNAL_ERROR` and the HTTP status carries the
            semantics.
          example: API_KEY_INVALID
        message:
          description: Human-readable message, or a list of validation messages (400).
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: Invalid API key
    Meta:
      type: object
      description: >-
        Response metadata. Always present; `timestamp` is the server time the
        response was generated.
      required:
        - timestamp
      properties:
        timestamp:
          type: string
          format: date-time
          description: Server time when the response was generated (ISO 8601).
          example: '2026-06-19T08:31:59.478Z'
      additionalProperties: true
    EquityEvent:
      description: >
        One corporate event. `type` tells the two shapes apart: a **dividend**
        (dated by

        its ex-dividend date) or an **earnings release**.
      oneOf:
        - title: Dividend
          type: object
          required:
            - type
            - date
            - exDate
            - amountPerShare
            - currency
            - status
          properties:
            type:
              type: string
              const: dividend
            date:
              type: string
              format: date
              description: Ex-dividend date (same as `exDate`).
              example: '2026-09-29'
            exDate:
              type: string
              format: date
              example: '2026-09-29'
            recordDate:
              type:
                - string
                - 'null'
              format: date
              description: Record date. `null` for events known only from Yahoo Finance.
              example: '2026-09-30'
            dividendPeriod:
              type:
                - string
                - 'null'
              enum:
                - 1Q
                - 2Q
                - 3Q
                - FY
                - null
              example: 2Q
            amountPerShare:
              type: number
              example: 50
            currency:
              type: string
              example: JPY
            status:
              type: string
              enum:
                - expected
                - confirmed
              description: >
                `expected` — estimated from the company's own forecast;
                `confirmed` — the

                actual payout is published.
              example: confirmed
        - title: Earnings release
          type: object
          required:
            - type
            - date
            - status
          properties:
            type:
              type: string
              const: earnings_release
            date:
              type: string
              format: date
              description: Scheduled announcement date.
              example: '2026-11-05'
            fiscalPeriod:
              type:
                - string
                - 'null'
              enum:
                - 1Q
                - 2Q
                - 3Q
                - FY
                - null
              example: 2Q
            status:
              type: string
              const: scheduled
  responses:
    Unauthorized:
      description: >-
        Missing, invalid, disabled or expired API key. Send a valid key in the
        `X-API-Key` header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            success: false
            statusCode: 401
            error:
              code: API_KEY_INVALID
              message: Invalid API key
            meta:
              timestamp: '2026-06-19T08:34:08.023Z'
    Forbidden:
      description: >-
        Your subscription plan does not include this data feature, or your key's
        scope denies it.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            success: false
            statusCode: 403
            error:
              code: FEATURE_NOT_IN_PLAN
              message: Your plan does not include this feature
            meta:
              timestamp: '2026-06-19T08:34:08.100Z'
    RateLimited:
      description: >
        Rate limit exceeded — you have consumed your plan's per-minute weight
        budget.

        Wait until `X-RateLimit-Reset` (or `Retry-After` seconds) then retry.
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/XRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/XRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/XRateLimitReset'
        X-RateLimit-Weight-Used:
          $ref: '#/components/headers/XRateLimitWeightUsed'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            success: false
            statusCode: 429
            error:
              code: RATE_LIMIT_EXCEEDED
              message: Rate limit exceeded
            meta:
              timestamp: '2026-06-19T08:34:09.000Z'
    InternalError:
      description: Unexpected server error. Retry after a short exponential backoff.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            success: false
            statusCode: 500
            error:
              code: INTERNAL_ERROR
              message: Internal server error
            meta:
              timestamp: '2026-06-19T08:34:10.000Z'
  headers:
    XRateLimitLimit:
      description: Your plan's request-weight budget per 1-minute window.
      schema:
        type: integer
        example: 1000
    XRateLimitRemaining:
      description: Remaining request weight in the current 1-minute window.
      schema:
        type: integer
        example: 997
    XRateLimitReset:
      description: Unix timestamp (seconds) when the current rate-limit window resets.
      schema:
        type: integer
        format: int64
        example: 1781857979
    XRateLimitWeightUsed:
      description: Request weight consumed by this call (see each endpoint's weight).
      schema:
        type: integer
        example: 3
    RetryAfter:
      description: Seconds to wait before retrying. Present on 429 responses.
      schema:
        type: integer
        example: 30
  securitySchemes:
    HayInsightsApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: >
        Your HayInsights API key (prefixed `apk_`). Create and manage keys in
        the

        HayInsights dashboard (Account → API keys).


        Send it in the `X-API-Key` header on **every** request to
        `/openapi/v1/*`.

        Which data domains you may access and your request quota are both
        governed by

        the subscription plan attached to the key — see the **Plans & features**
        and

        **Rate limits** guides.

````

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