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

# Submit Forecast From Storage Object



## OpenAPI

````yaml POST /forecast/storage-object
openapi: 3.1.0
info:
  title: eomer.ai Forecasting API
  description: >-
    Production-grade time series forecasting and natural-language forecasting
    agent
  version: 0.1.0
servers: []
security: []
tags:
  - name: forecasting
    description: Time-series forecasting jobs
  - name: agent
    description: >-
      Natural-language forecasting: extract intent from a prompt, profile and
      recommend a model, and auto-submit a forecast.
  - name: tabular
    description: Classification and regression
  - name: fine-tuning
    description: Custom model training
  - name: storage
    description: Cloud dataset storage
  - name: estimates
    description: Cost and runtime estimation
  - name: system
    description: Health checks and model catalog
paths:
  /forecast/storage-object:
    post:
      tags:
        - forecasting
      summary: Submit Forecast From Storage Object
      operationId: submit_forecast_from_storage_object_forecast_storage_object_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StorageObjectForecastRequest'
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    StorageObjectForecastRequest:
      properties:
        object_id:
          type: string
          maxLength: 128
          minLength: 1
          title: Object Id
        prediction_length:
          type: integer
          minimum: 1
          title: Prediction Length
          default: 24
        presets:
          type: string
          maxLength: 128
          minLength: 1
          title: Presets
          default: eomer_pulse_l
        item_id_column:
          type: string
          maxLength: 200
          minLength: 1
          title: Item Id Column
          default: item_id
        timestamp_column:
          type: string
          maxLength: 200
          minLength: 1
          title: Timestamp Column
          default: timestamp
        target_column:
          type: string
          maxLength: 200
          minLength: 1
          title: Target Column
          default: target
        freq:
          anyOf:
            - type: string
              maxLength: 20
            - type: 'null'
          title: Freq
        quantile_levels:
          anyOf:
            - type: string
              maxLength: 200
            - type: 'null'
          title: Quantile Levels
        covariates:
          anyOf:
            - type: string
              maxLength: 500
            - type: 'null'
          title: Covariates
        latitude:
          anyOf:
            - type: number
            - type: 'null'
          title: Latitude
        longitude:
          anyOf:
            - type: number
            - type: 'null'
          title: Longitude
        feature_engineering:
          anyOf:
            - $ref: '#/components/schemas/FeatureEngineeringConfig'
            - type: 'null'
        external_covariates:
          anyOf:
            - $ref: '#/components/schemas/ExternalCovariatesConfig'
            - type: 'null'
        explainability:
          anyOf:
            - $ref: '#/components/schemas/ExplainabilityConfig'
            - type: 'null'
        reconciliation:
          anyOf:
            - $ref: '#/components/schemas/ReconciliationConfig'
            - type: 'null'
        callback_url:
          anyOf:
            - type: string
              maxLength: 2048
            - type: 'null'
          title: Callback Url
      additionalProperties: false
      type: object
      required:
        - object_id
      title: StorageObjectForecastRequest
      description: Request body for submitting a forecast job from a stored object.
    JobResponse:
      properties:
        job_id:
          type: string
          title: Job Id
        status:
          $ref: '#/components/schemas/JobStatus'
        created_at:
          type: string
          format: date-time
          title: Created At
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
        elapsed_seconds:
          anyOf:
            - type: number
            - type: 'null'
          title: Elapsed Seconds
        num_items:
          anyOf:
            - type: integer
            - type: 'null'
          title: Num Items
        prediction_length:
          anyOf:
            - type: integer
            - type: 'null'
          title: Prediction Length
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
        error_code:
          anyOf:
            - $ref: '#/components/schemas/ErrorCode'
            - type: 'null'
        download_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Download Url
        report_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Report Url
        external_covariate_metadata:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: External Covariate Metadata
        explainability:
          anyOf:
            - $ref: '#/components/schemas/ExplainabilitySummaryResponse'
            - type: 'null'
        explainability_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Explainability Url
        forecast_plot_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Forecast Plot Url
        reconciliation:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Reconciliation
        explanation:
          anyOf:
            - $ref: '#/components/schemas/ExplanationResponse'
            - type: 'null'
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Request Id
        config_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Config Hash
        dataset_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Dataset Hash
        model_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Version
        delivery_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Delivery Status
        delivery_connection_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Delivery Connection Id
        delivery_uri:
          anyOf:
            - type: string
            - type: 'null'
          title: Delivery Uri
        delivery_error:
          anyOf:
            - type: string
            - type: 'null'
          title: Delivery Error
      type: object
      required:
        - job_id
        - status
        - created_at
      title: JobResponse
      description: Response model for job status queries.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    FeatureEngineeringConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: true
        time_features:
          type: boolean
          title: Time Features
          default: true
        cyclical_encoding:
          type: boolean
          title: Cyclical Encoding
          default: true
        lag_features:
          type: boolean
          title: Lag Features
          default: true
        lag_periods:
          items:
            type: integer
          type: array
          title: Lag Periods
          default:
            - 1
            - 7
            - 14
            - 30
        rolling_features:
          type: boolean
          title: Rolling Features
          default: true
        rolling_windows:
          items:
            type: integer
          type: array
          title: Rolling Windows
          default:
            - 3
            - 7
            - 14
            - 30
        rolling_stats:
          items:
            type: string
          type: array
          title: Rolling Stats
          default:
            - mean
            - std
            - min
            - max
        growth_features:
          type: boolean
          title: Growth Features
          default: true
        growth_periods:
          items:
            type: integer
          type: array
          title: Growth Periods
          default:
            - 1
            - 7
        event_flags:
          type: boolean
          title: Event Flags
          default: true
      additionalProperties: false
      type: object
      title: FeatureEngineeringConfig
      description: >-
        Internal covariate generation from the dataset itself. When enabled,
        deterministic features (calendar, cyclical encodings, lag,

        rolling statistics, growth metrics, and event flags) are generated and

        injected as covariates before model fitting.
    ExternalCovariatesConfig:
      properties:
        weather:
          $ref: '#/components/schemas/WeatherExternalCovariatesConfig'
        holidays:
          $ref: '#/components/schemas/HolidayExternalCovariatesConfig'
        fred:
          $ref: '#/components/schemas/FredExternalCovariatesConfig'
        air_quality:
          $ref: '#/components/schemas/AirQualityExternalCovariatesConfig'
        rates:
          $ref: '#/components/schemas/RatesExternalCovariatesConfig'
        electricity:
          $ref: '#/components/schemas/ElectricityExternalCovariatesConfig'
      additionalProperties: false
      type: object
      title: ExternalCovariatesConfig
      description: External covariate source settings.
    ExplainabilityConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Generate explainability analyses and plots after forecasting.
          default: false
        feature_importance:
          type: boolean
          title: Feature Importance
          description: Generate model-based feature importance when supported.
          default: true
        shap:
          type: boolean
          title: Shap
          description: Generate surrogate SHAP explainability artifacts.
          default: true
        feature_feature_correlations:
          type: boolean
          title: Feature Feature Correlations
          description: Generate feature-to-feature correlation analysis.
          default: true
        feature_target_correlations:
          type: boolean
          title: Feature Target Correlations
          description: Generate feature-to-target correlation analysis.
          default: true
        forecast_plot:
          type: boolean
          title: Forecast Plot
          description: >-
            Generate an interactive Plotly forecast plot with trailing history
            and uncertainty bands.
          default: true
        rolling_regression:
          type: boolean
          title: Rolling Regression
          description: >-
            Run rolling-window regression for time-varying feature importance
            and surface the coefficients + a driver-evolution chart as
            explainability artifacts. Requires
            analysis.rolling_regression.enabled to also be true.
          default: true
        trailing_history_steps:
          anyOf:
            - type: integer
            - type: 'null'
          title: Trailing History Steps
          description: >-
            Number of trailing historical observations to show before the
            forecast boundary. None = auto: min(2 * prediction_length, 120).
        max_rows:
          type: integer
          minimum: 50
          title: Max Rows
          description: Maximum number of rows sampled for explainability analyses.
          default: 5000
        max_features:
          type: integer
          minimum: 1
          title: Max Features
          description: >-
            Maximum number of feature columns included in explainability
            outputs.
          default: 25
        top_k_features:
          type: integer
          minimum: 1
          title: Top K Features
          description: Maximum number of top-ranked features highlighted in plots.
          default: 15
        shap_sample_size:
          type: integer
          minimum: 25
          title: Shap Sample Size
          description: Maximum number of rows used when fitting the surrogate SHAP model.
          default: 512
      additionalProperties: false
      type: object
      title: ExplainabilityConfig
      description: Optional post-forecast explainability analyses and artifacts.
    ReconciliationConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Enable hierarchical forecast reconciliation.
          default: false
        hierarchy_columns:
          items:
            type: string
          type: array
          title: Hierarchy Columns
          description: >-
            Grouping columns forming the hierarchy, top→bottom (e.g. ['region',
            'store']). Original data column names; the bottom-level series id is
            their separator-joined composite.
        method:
          type: string
          title: Method
          description: >-
            Reconciliation method: 'bottom_up' (aggregate leaf forecasts
            upward), 'top_down' (distribute the total by historical
            proportions), or 'min_trace' (MinT — adjust all levels, weighted by
            uncertainty).
          default: min_trace
        weights:
          type: string
          title: Weights
          description: >-
            MinT weighting: 'ols', 'wls_struct', 'wls_var', or 'shrink'.
            'wls_var' and 'shrink' estimate weights from an internal residual
            backtest (extra inference passes); ignored for
            'bottom_up'/'top_down'.
          default: wls_struct
        top_down_method:
          type: string
          title: Top Down Method
          description: >-
            Allocation rule for method='top_down':
            'proportions_of_historical_totals' (each series' summed history over
            the summed total), 'average_historical_proportions' (mean of the
            per-period shares), or 'forecast_proportions' (shares taken from the
            base forecasts themselves, recursively per level). Ignored by the
            other methods.
          default: proportions_of_historical_totals
        separator:
          type: string
          minLength: 1
          title: Separator
          description: Separator joining hierarchy values into series ids.
          default: /
        total_label:
          type: string
          minLength: 1
          title: Total Label
          description: Series id of the grand-total node in the output.
          default: total
        residual_windows:
          type: integer
          maximum: 5
          minimum: 1
          title: Residual Windows
          description: >-
            Backtest windows used to estimate residuals — only consumed by
            weights 'wls_var'/'shrink'; each window costs one extra inference
            pass.
          default: 1
      additionalProperties: false
      type: object
      title: ReconciliationConfig
      description: >-
        Reconcile forecasts across a summation hierarchy. When enabled, the
        pipeline derives every hierarchy level from

        ``hierarchy_columns`` (aggregate series are forecast alongside the
        bottom

        ones) and post-adjusts all forecasts to coherence: each parent equals
        the

        sum of its children.
    JobStatus:
      type: string
      enum:
        - pending
        - running
        - completed
        - failed
      title: JobStatus
      description: Status values for async forecast jobs.
    ErrorCode:
      type: string
      enum:
        - validation_error
        - invalid_preset
        - file_too_large
        - rate_limited
        - server_overloaded
        - job_not_found
        - job_not_completed
        - auth_failed
        - internal_error
        - timeout
        - pipeline_failed
        - storage_error
        - gpu_offload_unavailable
        - connection_not_found
        - connector_error
        - sandbox_domain_used
        - sandbox_captcha_failed
        - sandbox_dataset_too_large
        - sandbox_corporate_email_required
      title: ErrorCode
      description: Machine-readable error codes for agent-friendly error handling.
    ExplainabilitySummaryResponse:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        overview_markdown:
          type: string
          title: Overview Markdown
          default: ''
        selected_analyses:
          items:
            type: string
          type: array
          title: Selected Analyses
        completed_analyses:
          items:
            type: string
          type: array
          title: Completed Analyses
        skipped_analyses:
          additionalProperties:
            type: string
          type: object
          title: Skipped Analyses
        warnings:
          items:
            type: string
          type: array
          title: Warnings
        artifacts:
          items:
            $ref: '#/components/schemas/ExplainabilityArtifactResponse'
          type: array
          title: Artifacts
        summary_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Summary Path
      type: object
      title: ExplainabilitySummaryResponse
      description: Explainability execution status for a forecast job.
    ExplanationResponse:
      properties:
        headline:
          type: string
          title: Headline
          default: ''
        narrative:
          type: string
          title: Narrative
          default: ''
        data_findings:
          items:
            type: string
          type: array
          title: Data Findings
        forecast_summary:
          items:
            type: string
          type: array
          title: Forecast Summary
        operational_implications:
          items:
            type: string
          type: array
          title: Operational Implications
        caveats:
          items:
            type: string
          type: array
          title: Caveats
        confidence:
          type: number
          title: Confidence
          default: 0
        generated_by:
          type: string
          title: Generated By
          default: rules
      type: object
      title: ExplanationResponse
      description: >-
        Post-forecast business explanation surfaced on a completed job. Written
        by the explanation agent (the second LLM in the agentic

        "sandwich"). Always vendor-neutral — the backend sanitizes every field

        before persisting, so no underlying model/vendor name appears here.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    WeatherExternalCovariatesConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        source:
          $ref: '#/components/schemas/WeatherSource'
          default: open_meteo
        point_in_time:
          type: boolean
          title: Point In Time
          default: true
        variables:
          items:
            type: string
          type: array
          title: Variables
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
        latitude_column:
          anyOf:
            - type: string
            - type: 'null'
          title: Latitude Column
        longitude_column:
          anyOf:
            - type: string
            - type: 'null'
          title: Longitude Column
        latitude:
          anyOf:
            - type: number
            - type: 'null'
          title: Latitude
        longitude:
          anyOf:
            - type: number
            - type: 'null'
          title: Longitude
        resolved_location:
          anyOf:
            - $ref: '#/components/schemas/WeatherResolvedLocation'
            - type: 'null'
      additionalProperties: false
      type: object
      title: WeatherExternalCovariatesConfig
      description: Weather covariate settings.
    HolidayExternalCovariatesConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        variables:
          items:
            type: string
          type: array
          title: Variables
        country_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Code
        subdivision_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Subdivision Code
      additionalProperties: false
      type: object
      title: HolidayExternalCovariatesConfig
      description: Holiday covariate settings.
    FredExternalCovariatesConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        variables:
          items:
            type: string
          type: array
          title: Variables
        future_strategy:
          $ref: '#/components/schemas/FredFutureStrategy'
          default: forward_fill_latest
      additionalProperties: false
      type: object
      title: FredExternalCovariatesConfig
      description: FRED covariate settings.
    AirQualityExternalCovariatesConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        point_in_time:
          type: boolean
          title: Point In Time
          default: true
        variables:
          items:
            type: string
          type: array
          title: Variables
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
      additionalProperties: false
      type: object
      title: AirQualityExternalCovariatesConfig
      description: >-
        Air-quality covariate settings (Copernicus CAMS forecast archive,
        store-backed). Like CDS weather, this reads pre-materialized
        point-in-time forecasts from the

        covariate store and is scoped to a known city. ``point_in_time``
        enforces the

        anti-lookahead invariant for backtesting; set ``False`` for operational
        forecasts.
    RatesExternalCovariatesConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        point_in_time:
          type: boolean
          title: Point In Time
          default: true
        variables:
          items:
            type: string
          type: array
          title: Variables
        future_strategy:
          $ref: '#/components/schemas/FredFutureStrategy'
          default: forward_fill_latest
      additionalProperties: false
      type: object
      title: RatesExternalCovariatesConfig
      description: >-
        Rates & inflation covariate settings (FRED/ALFRED vintage archive,
        store-backed). Market-implied, forward-looking series (breakeven
        inflation, Treasury yields) are

        read from the covariate store vintage-correct (leak-free) and
        forward-filled between

        updates. Not geo-scoped (entity = ``global``).
    ElectricityExternalCovariatesConfig:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        point_in_time:
          type: boolean
          title: Point In Time
          default: true
        variables:
          items:
            type: string
          type: array
          title: Variables
        bidding_zone:
          anyOf:
            - type: string
            - type: 'null'
          title: Bidding Zone
      additionalProperties: false
      type: object
      title: ElectricityExternalCovariatesConfig
      description: >-
        Electricity day-ahead forecast covariate settings (ENTSO-E archive,
        store-backed). Scoped to a known bidding zone; reads pre-materialized
        point-in-time day-ahead

        forecasts (load + wind/solar generation) from the covariate store.
    ExplainabilityArtifactResponse:
      properties:
        artifact_id:
          type: string
          title: Artifact Id
        analysis:
          type: string
          title: Analysis
        label:
          type: string
          title: Label
        format:
          type: string
          title: Format
        output_path:
          anyOf:
            - type: string
            - type: 'null'
          title: Output Path
        download_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Download Url
        embed_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Embed Url
        description:
          type: string
          title: Description
          default: ''
        render_inline:
          type: boolean
          title: Render Inline
          default: false
        preview_markdown:
          type: string
          title: Preview Markdown
          default: ''
        highlights:
          items:
            type: string
          type: array
          title: Highlights
        display_order:
          type: integer
          title: Display Order
          default: 0
        is_primary_visual:
          type: boolean
          title: Is Primary Visual
          default: false
        is_thumbnail:
          type: boolean
          title: Is Thumbnail
          default: false
      type: object
      required:
        - artifact_id
        - analysis
        - label
        - format
      title: ExplainabilityArtifactResponse
      description: A single explainability artifact exposed by the forecast job API.
    WeatherSource:
      type: string
      enum:
        - cds
        - open_meteo
      title: WeatherSource
      description: >-
        Backend that supplies weather covariate values. ``open_meteo`` (default)
        uses the inline Open-Meteo API provider and

        supports arbitrary cities + lat/lon. ``cds`` reads pre-materialized

        Copernicus CDS forecast series from the GCS covariate store —
        point-in-time

        forecasts that enable lookahead-free backtesting — and is scoped to the

        cities pre-materialized in the registry. Opt into CDS per request/config

        with ``source="cds"``.
    WeatherResolvedLocation:
      properties:
        query:
          type: string
          title: Query
        name:
          type: string
          title: Name
        latitude:
          type: number
          title: Latitude
        longitude:
          type: number
          title: Longitude
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
        admin1:
          anyOf:
            - type: string
            - type: 'null'
          title: Admin1
        timezone:
          anyOf:
            - type: string
            - type: 'null'
          title: Timezone
      additionalProperties: false
      type: object
      required:
        - query
        - name
        - latitude
        - longitude
      title: WeatherResolvedLocation
      description: Resolved weather location details derived from a city query.
    FredFutureStrategy:
      type: string
      enum:
        - forward_fill_latest
      title: FredFutureStrategy
      description: Future-value fill strategy for FRED covariates.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````