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

# Run Forecast

> Execute a forecast model on an indicator series.



## OpenAPI

````yaml POST /api/forecast/run
openapi: 3.1.0
info:
  title: Macro by Mark API
  version: 1.0.0
  description: |
    Public and authenticated API for the Macro by Mark macroeconomics platform.
    Covers indicator data, forecasting, discovery catalog, labs, account
    management, alerts, and administrative endpoints.
  contact:
    name: Mark Jayson Farol
    email: farolmarkjayson1313@gmail.com
  license:
    name: Proprietary
servers:
  - url: https://macrobymark.com
    description: Production
security: []
tags:
  - name: Health
    description: Platform health checks
  - name: Indicators
    description: Curated indicator library and per-series data
  - name: Discovery
    description: Discovery catalog search and series detail
  - name: Forecasting
    description: Time-series forecasting engine
  - name: Labs
    description: Econometric testing tools (stationarity, diagnostics)
  - name: Providers
    description: Passthrough data provider proxies (FRED, BEA, BLS, etc.)
  - name: News & Calendar
    description: Economic news feed and release calendar
  - name: Account
    description: User account, profile, preferences, workspace
  - name: Billing
    description: Stripe-backed subscription billing
  - name: Alerts
    description: Watchlist alert delivery
  - name: Admin
    description: Administrative and cron endpoints (requires CRON_SECRET)
  - name: Chat
    description: AI chat assistant
  - name: Import
    description: Indicator import pipeline
paths:
  /api/forecast/run:
    post:
      tags:
        - Forecasting
      summary: Execute a forecast run
      description: |
        Runs a time-series forecast. Rate limited to 12 requests per minute.
        Supports 8+ model families including ARIMA, ETS, VAR, BVAR, and VECM.
      operationId: runForecast
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForecastRunRequest'
      responses:
        '200':
          description: Forecast result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForecastRunResponse'
        '429':
          description: Rate limited
components:
  schemas:
    ForecastRunRequest:
      type: object
      required:
        - slug
        - modelId
      properties:
        slug:
          type: string
          description: Indicator slug
        modelId:
          type: string
          description: Model identifier (e.g. "arima-auto", "ets-auto", "var-2")
        transform:
          type: string
          enum:
            - level
            - mom
            - yoy
            - annualized
            - index-100
          default: level
        lookback:
          type: integer
          description: Number of historical observations
        horizon:
          type: integer
          description: Forecast horizon periods
        sampleStart:
          type: string
          format: date
        sampleEnd:
          type: string
          format: date
        mcs:
          type: boolean
          description: Run Model Confidence Set
        modelOptions:
          type: object
        vintage:
          type: object
          properties:
            mode:
              type: string
              enum:
                - latest
                - specific
            date:
              type: string
              format: date
    ForecastRunResponse:
      type: object
      properties:
        cacheKey:
          type: string
        forecast:
          type: object
        diagnostics:
          type: object
        audit:
          type: object
        reproducibility:
          type: object

````