---
title: "Foundational Time Series Model Online Multi Series Anomaly Detector"
method: POST
path: "/v2/online_anomaly_detection"
---

# Foundational Time Series Model Online Multi Series Anomaly Detector

`POST /v2/online_anomaly_detection`

This endpoint performs online anomaly detection based on the provided data. It uses cross-validation for more robust detection of anomalies and it supports detection for univariate and multivariate scenarios. It takes a JSON as an input containing information like the series frequency and historical data. (See below for a full description of the parameters.) The response contains a flag indicating if the date has an anomaly, it provides the prediction interval used to define if an observation is an anomaly, and it reports the associated z-score for each point. Get your token at https://nixtla.io/free-trial?utm_source=nixtla.io&utm_campaign=/docs/api-reference.

## Request body

- OnlineAnomalyInput
  - `series` SeriesWithFutureExogenous, required
    - `X_future` array[], nullable — Future values of the exogenous features. Each feature must be a list of size number of series times the forecast horizon (h).
      - union[]
        - union
          - number
          - string
    - `X` array[], nullable — Historic values of the exogenous features. Each feature must be a list of the same size as the target (y).
      - union[]
        - union
          - number
          - string
    - `categorical_exog` integer[], nullable — Zero-based indices of the columns in X that are categorical features.
    - `y` number[], required — Historic values of the target.
    - `sizes` integer[], required — Sizes of the individual series.
  - `freq` string, required — The frequency of the data represented as a string. 'D' for daily, 'M' for monthly, 'H' for hourly, and 'W' for weekly frequencies are available.
  - `detection_size` integer, required — Window over which to detect anomalies starting from the end of the series. This window is not considered when calculating the anomaly threshold to avoid bias from abnormal samples, unless there are less than 6 * detection_size forecasted samples.
  - `threshold_method` 'univariate' | 'multivariate' — The thresholding method to detect anomalies
  - `h` integer, required — The forecasting horizon. This represents the number of time steps into the future that the forecast should predict.
  - `model` string — Model to use as a string. Common options are (but not restricted to) `timegpt-1` and `timegpt-1-long-horizon.` Full options vary by different users. Contact support@nixtla.io for more information. We recommend using `timegpt-1-long-horizon` for forecasting if you want to predict more than one seasonal period given the frequency of your data.
  - `clean_ex_first` boolean — A boolean flag that indicates whether the API should preprocess (clean) the exogenous signal before applying the large time model. If True, the exogenous signal is cleaned; if False, the exogenous variables are applied after the large time model.
  - `level` union — Specifies the confidence level for the prediction interval used in anomaly detection. It is represented as a percentage between 0 and 100. For instance, a level of 95 indicates that the generated prediction interval captures the true future observation 95% of the time. Any observed values outside of this interval would be considered anomalies. A higher level leads to wider prediction intervals and potentially fewer detected anomalies, whereas a lower level results in narrower intervals and potentially more detected anomalies. Default: 99.
    - integer
    - number
  - `finetune_steps` integer — The number of tuning steps used to train the large time model on the data. Set this value to 0 for zero-shot inference, i.e., to make predictions without any further model tuning.
  - `finetune_loss` 'default' | 'mae' | 'mse' | 'rmse' | 'mape' | 'smape' | 'poisson' — The loss used to train the large time model on the data. Select from ['default', 'mae', 'mse', 'rmse', 'mape', 'smape', 'poisson']. It will only be used if finetune_steps larger than 0. Default is a robust loss function that is less sensitive to outliers.
  - `finetune_depth` 1 | 2 | 3 | 4 | 5 — The depth of the finetuning. Uses a scale from 1 to 5, where 1 means little finetuning, and 5 means that the entire model is finetuned. Note that this parameter is only effective for timegpt-1 and timegpt-1-long-horizon models, meanwhile it has no effect on the other models. By default, the value is set to 1.
  - `finetuned_model_id` string, nullable — ID of previously finetuned model
  - `step_size` integer, nullable — Step size between each cross validation window. If None it will be equal to the forecasting horizon.
  - `hist_exog` integer[], nullable — Zero-based indices of the exogenous features to treat as historical.
  - `refit` boolean — Fine-tune the model in each window. If `False`, only fine-tunes on the first window. Only used if `finetune_steps` > 0.
  - `multivariate` boolean — Compute multivariate predictions across a batch of multiple time series. Requires all time series with overlapping dates. Note that this is only effective for timegpt-2.1 model and it has no effect on the other models. By default, the value is set to False.
  - `model_parameters` object, nullable — Optional dictionary of parameters to customize the behavior of the large time model.

## Response `200`

Successful Response

- OnlineAnomalyOutput
  - `input_tokens` integer, required
  - `output_tokens` integer, required
  - `finetune_tokens` integer, required
  - `mean` number[], required
  - `sizes` integer[], required
  - `idxs` integer[], required
  - `anomaly` boolean[], required
  - `anomaly_score` number[], required
  - `accumulated_anomaly_score` number[], nullable
  - `intervals` object, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/nixtla/apis/nixtla-forecast-api.md) · [All operations](https://skmtc.net/nixtla/apis/nixtla-forecast-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nixtla/nixtla-forecast-api/revisions/a3b589142eba/schema)
