> ## 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.

# US FOMC meeting schedule and rate decisions

> The Federal Open Market Committee's meeting calendar with the result of each
meeting: the decision (hike, cut or hold), the change in basis points, and the
target range and EFFR on the first business day after the decision.

`meetings` lists one year's meetings, newest first; pick the year with `year`
(values in `years`). `nextMeeting` and `upcoming` always cover every meeting that
has not happened yet, whatever `year` is, and `currentTargetRange` is the range in
force on the latest business day on record.

A meeting is `upcoming` until its decision day has passed (New York date). Right
after that, the result fields can stay `null` until the next collection run. The
first meeting on record (2016-01-27) has `action: null` — there is no earlier range
to compare with. Cancelled meetings (2020-03-17/18) are left out.

Scheduled meetings announce at 2:00 p.m. New York time on the decision day;
`announcementAt` gives that moment in UTC. Unscheduled meetings have no fixed time.

Sources: Federal Reserve Board (FOMC calendar, statements); Federal Reserve Bank
of New York (EFFR).




## OpenAPI

````yaml /openapi.yaml get /openapi/v1/macro/fed-funds/us/fomc-meetings
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, fund composition and Bank of Japan ETF holdings.
  - 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, policy rates / bond yields, interbank rates, FDI,
      trade by region and the manufacturing PMI.
  - 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 —
      plus Vietnamese stock (HOSE / HNX / UPCoM) daily prices and financial
      statements.
paths:
  /openapi/v1/macro/fed-funds/us/fomc-meetings:
    get:
      tags:
        - Macro
      summary: US FOMC meeting schedule and rate decisions
      description: >
        The Federal Open Market Committee's meeting calendar with the result of
        each

        meeting: the decision (hike, cut or hold), the change in basis points,
        and the

        target range and EFFR on the first business day after the decision.


        `meetings` lists one year's meetings, newest first; pick the year with
        `year`

        (values in `years`). `nextMeeting` and `upcoming` always cover every
        meeting that

        has not happened yet, whatever `year` is, and `currentTargetRange` is
        the range in

        force on the latest business day on record.


        A meeting is `upcoming` until its decision day has passed (New York
        date). Right

        after that, the result fields can stay `null` until the next collection
        run. The

        first meeting on record (2016-01-27) has `action: null` — there is no
        earlier range

        to compare with. Cancelled meetings (2020-03-17/18) are left out.


        Scheduled meetings announce at 2:00 p.m. New York time on the decision
        day;

        `announcementAt` gives that moment in UTC. Unscheduled meetings have no
        fixed time.


        Sources: Federal Reserve Board (FOMC calendar, statements); Federal
        Reserve Bank

        of New York (EFFR).
      operationId: macroFedFundsUsFomcMeetings
      parameters:
        - name: year
          in: query
          required: false
          description: >
            Year of `meetings`, 2016 or later. Omit for the current year (New
            York time). A

            year without meetings returns `meetings: []`.
          schema:
            type: integer
            minimum: 2016
            maximum: 2100
            example: 2026
      responses:
        '200':
          description: FOMC calendar and the meetings of the requested year.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MacroFedFundsUsFomcMeetingsResponse'
              example:
                success: true
                statusCode: 200
                data:
                  country: us
                  years:
                    - 2016
                    - 2017
                    - 2018
                    - 2019
                    - 2020
                    - 2021
                    - 2022
                    - 2023
                    - 2024
                    - 2025
                    - 2026
                    - 2027
                  year: 2026
                  currentTargetRange:
                    date: '2026-11-06'
                    low: 3.75
                    high: 4
                  nextMeeting:
                    meetingStartDate: '2026-12-08'
                    decisionDate: '2026-12-09'
                    meetingType: scheduled
                    status: upcoming
                    hasSep: true
                    announcementAt: '2026-12-09T19:00:00.000Z'
                    effectiveDate: null
                    action: null
                    changeBp: null
                    targetRangeLow: null
                    targetRangeHigh: null
                    effrOnEffectiveDate: null
                    statementUrl: null
                    implementationNoteUrl: null
                  upcoming:
                    - meetingStartDate: '2026-12-08'
                      decisionDate: '2026-12-09'
                      meetingType: scheduled
                      status: upcoming
                      hasSep: true
                      announcementAt: '2026-12-09T19:00:00.000Z'
                      effectiveDate: null
                      action: null
                      changeBp: null
                      targetRangeLow: null
                      targetRangeHigh: null
                      effrOnEffectiveDate: null
                      statementUrl: null
                      implementationNoteUrl: null
                  meetings:
                    - meetingStartDate: '2026-12-08'
                      decisionDate: '2026-12-09'
                      meetingType: scheduled
                      status: upcoming
                      hasSep: true
                      announcementAt: '2026-12-09T19:00:00.000Z'
                      effectiveDate: null
                      action: null
                      changeBp: null
                      targetRangeLow: null
                      targetRangeHigh: null
                      effrOnEffectiveDate: null
                      statementUrl: null
                      implementationNoteUrl: null
                    - meetingStartDate: '2026-10-27'
                      decisionDate: '2026-10-28'
                      meetingType: scheduled
                      status: decided
                      hasSep: false
                      announcementAt: '2026-10-28T18:00:00.000Z'
                      effectiveDate: '2026-10-29'
                      action: HOLD
                      changeBp: 0
                      targetRangeLow: 3.75
                      targetRangeHigh: 4
                      effrOnEffectiveDate: 3.88
                      statementUrl: >-
                        https://www.federalreserve.gov/newsevents/pressreleases/monetary20261028a.htm
                      implementationNoteUrl: >-
                        https://www.federalreserve.gov/newsevents/pressreleases/monetary20261028a1.htm
                meta:
                  source:
                    - Federal Reserve Board — FOMC meeting calendar
                    - >-
                      Federal Reserve Bank of New York — Effective Federal Funds
                      Rate (Markets Data API)
                  as_of: '2026-11-06'
                  unit:
                    rate: percent_per_annum
                    changeBp: basis_points
                  classification:
                    RAW:
                      - meetingStartDate
                      - decisionDate
                      - meetingType
                      - statementUrl
                      - implementationNoteUrl
                      - targetRangeLow
                      - targetRangeHigh
                      - effrOnEffectiveDate
                    DERIVED:
                      - effectiveDate
                      - status
                      - hasSep
                      - announcementAt
                    COMPUTED:
                      - action
                      - changeBp
                  formula_version:
                    action: v1
                    changeBp: 'v1: (target_high after - target_high before) * 100'
                  terms_notice: >-
                    The Effective Federal Funds Rate (EFFR) is subject to the
                    Terms of Use posted at newyorkfed.org. The New York Fed is
                    not responsible for publication of the EFFR by HayInsights,
                    does not sanction or endorse any particular republication,
                    and has no liability for your use.
                  served_from_cache: true
                  cache_expires_at: '2026-11-08T02:12:03.000Z'
                  timestamp: '2026-11-07T14:12:03.000Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    MacroFedFundsUsFomcMeetingsResponse:
      allOf:
        - $ref: '#/components/schemas/EnvelopeBase'
        - type: object
          required:
            - data
          properties:
            data:
              $ref: '#/components/schemas/FomcSchedule'
            meta:
              $ref: '#/components/schemas/FedFundsMeta'
    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'
    FomcSchedule:
      type: object
      description: FOMC meeting calendar and results for the United States.
      required:
        - country
        - years
        - year
        - currentTargetRange
        - nextMeeting
        - upcoming
        - meetings
      properties:
        country:
          type: string
          enum:
            - us
          description: Country code, lowercase.
          example: us
        years:
          type: array
          description: >-
            Years that have meetings on record, oldest first — values accepted
            by `year`.
          items:
            type: integer
          example:
            - 2025
            - 2026
            - 2027
        year:
          type: integer
          description: Year of `meetings`.
          example: 2026
        currentTargetRange:
          description: >-
            Target range on the latest business day on record. `null` when
            nothing is on record yet.
          oneOf:
            - type: object
              required:
                - date
                - low
                - high
              properties:
                date:
                  type: string
                  format: date
                  description: Business day the range is taken from.
                  example: '2026-11-06'
                low:
                  type: number
                  description: Lower bound, % per year.
                  example: 3.75
                high:
                  type: number
                  description: Upper bound, % per year.
                  example: 4
            - type: 'null'
        nextMeeting:
          description: >-
            The nearest meeting that has not happened yet. `null` when the Fed
            has not announced one.
          oneOf:
            - $ref: '#/components/schemas/FomcMeeting'
            - type: 'null'
        upcoming:
          type: array
          description: >-
            Every meeting that has not happened yet, nearest first — including
            next year's once the Fed publishes it.
          items:
            $ref: '#/components/schemas/FomcMeeting'
        meetings:
          type: array
          description: >-
            Meetings of `year`, newest first. Empty when the year has no
            meetings.
          items:
            $ref: '#/components/schemas/FomcMeeting'
    FedFundsMeta:
      description: >
        Response metadata for the Fed Funds endpoints. On top of `timestamp`, it
        says where the

        numbers came from, which fields HayInsights computes, how fresh the
        response is, and

        carries the notice the New York Fed requires next to any EFFR figure.
      allOf:
        - $ref: '#/components/schemas/Meta'
        - type: object
          properties:
            source:
              type: array
              description: Data providers.
              items:
                type: string
              example:
                - >-
                  Federal Reserve Bank of New York — Effective Federal Funds
                  Rate (Markets Data API)
                - >-
                  FRED (St. Louis Fed) — IORB, IOER and the federal funds target
                  range
            as_of:
              type:
                - string
                - 'null'
              format: date
              description: >
                Latest business day in the response. For `/daily`, the New York
                Fed publishes

                day D at about 9:00 a.m. New York time on business day D+1.
              example: '2026-11-06'
            unit:
              type: object
              description: Unit of each kind of numeric field.
              additionalProperties:
                type: string
              example:
                rate: percent_per_annum
                volumeBn: usd_billion
                spreadIorbBp: basis_points
            knowledge_at:
              type:
                - string
                - 'null'
              format: date-time
              description: '`/daily` only — same as `data.knowledgeAt`.'
              example: '2026-11-07T14:12:03.000Z'
            classification:
              type: object
              description: >
                How each field was produced: `RAW` is passed through as the
                source published it,

                `DERIVED` follows from a published rule, `COMPUTED` is
                calculated by HayInsights.
              additionalProperties:
                type: array
                items:
                  type: string
              example:
                RAW:
                  - effr
                  - p01
                  - p25
                  - p75
                  - p99
                  - volumeBn
                  - targetLow
                  - targetHigh
                  - iorb
                DERIVED:
                  - reserveRate
                COMPUTED:
                  - spreadIorbBp
            formula_version:
              type: object
              description: Version tag of the formula behind each computed field.
              additionalProperties:
                type: string
              example:
                spreadIorbBp: 'v1: (effr - iorb) * 100'
            was_restated:
              type: boolean
              description: '`/daily` only — same as `data.wasRestated`.'
              example: false
            terms_notice:
              type: string
              description: >
                Notice required by the New York Fed's Terms of Use. Show it with
                any EFFR

                figure you publish.
              example: >-
                The Effective Federal Funds Rate (EFFR) is subject to the Terms
                of Use posted at newyorkfed.org. The New York Fed is not
                responsible for publication of the EFFR by HayInsights, does not
                sanction or endorse any particular republication, and has no
                liability for your use.
            served_from_cache:
              type: boolean
              description: Whether the response was served from cache.
              example: false
            cache_expires_at:
              type:
                - string
                - 'null'
              format: date-time
              description: >-
                When the cached copy expires (12 h; it is dropped as soon as a
                new figure is collected).
              example: '2026-11-07T02:12:03.000Z'
    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'
    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
    FomcMeeting:
      type: object
      description: >
        One FOMC meeting. Cancelled meetings are left out. Result fields
        (`action`,

        `changeBp`, target range, EFFR) are `null` until the decision is out.
      required:
        - meetingStartDate
        - decisionDate
        - meetingType
        - status
        - hasSep
        - announcementAt
        - effectiveDate
        - action
        - changeBp
        - targetRangeLow
        - targetRangeHigh
        - effrOnEffectiveDate
        - statementUrl
        - implementationNoteUrl
      properties:
        meetingStartDate:
          type: string
          format: date
          description: >-
            First day of the meeting. Same as `decisionDate` for a one-day
            meeting.
          example: '2026-10-27'
        decisionDate:
          type: string
          format: date
          description: Day the decision is announced (the last meeting day).
          example: '2026-10-28'
        meetingType:
          type: string
          enum:
            - scheduled
            - unscheduled
          description: >-
            `scheduled` — one of the eight regular meetings; `unscheduled` — an
            extra meeting.
          example: scheduled
        status:
          type: string
          enum:
            - upcoming
            - decided
          description: >-
            `upcoming` until the decision day has passed (New York date) and the
            statement is out.
          example: decided
        hasSep:
          type: boolean
          description: >-
            Whether the meeting publishes a Summary of Economic Projections
            (with the dot plot) — the March, June, September and December
            meetings.
          example: false
        announcementAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            When the statement is released, UTC — 2:00 p.m. New York time on
            `decisionDate`

            for a scheduled meeting. Convert it to any time zone; do not add a
            fixed offset

            (US daylight saving time changes it). `null` for an unscheduled
            meeting.
          example: '2026-10-28T18:00:00.000Z'
        effectiveDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            First business day after the decision — the day `targetRangeLow`,
            `targetRangeHigh` and `effrOnEffectiveDate` are taken from.
          example: '2026-10-29'
        action:
          type:
            - string
            - 'null'
          enum:
            - HIKE
            - CUT
            - HOLD
            - null
          description: What the FOMC did to the target range.
          example: HOLD
        changeBp:
          type:
            - number
            - 'null'
          description: Change of the target range's upper bound, in basis points (signed).
          example: 0
        targetRangeLow:
          type:
            - number
            - 'null'
          description: Lower bound of the target range on `effectiveDate`, % per year.
          example: 3.75
        targetRangeHigh:
          type:
            - number
            - 'null'
          description: Upper bound of the target range on `effectiveDate`, % per year.
          example: 4
        effrOnEffectiveDate:
          type:
            - number
            - 'null'
          description: EFFR on `effectiveDate`, % per year.
          example: 3.88
        statementUrl:
          type:
            - string
            - 'null'
          format: uri
          description: FOMC statement on federalreserve.gov. `null` before the meeting.
          example: >-
            https://www.federalreserve.gov/newsevents/pressreleases/monetary20261028a.htm
        implementationNoteUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            Implementation Note on federalreserve.gov. `null` before the
            meeting.
          example: >-
            https://www.federalreserve.gov/newsevents/pressreleases/monetary20261028a1.htm
    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
  responses:
    BadRequest:
      description: >-
        Invalid or missing parameter — bad enum, range, format, or a missing
        required query parameter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorBody'
          example:
            success: false
            statusCode: 400
            error:
              code: INTERNAL_ERROR
              message:
                - >-
                  Invalid type parameter. Must be "gdp", "cpi", "pce", or
                  "import-export"
                - Type parameter is required
            meta:
              error: Bad Request
              statusCode: 400
              timestamp: '2026-06-19T08:34:08.081Z'
    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.