{
  "data": {
    "collective_anomalies": [
      {
        "t": "2020-01-01T00:00:15Z",
        "mean_change_strength": 2.57,
        "variance_change_strength": 0.1752,
        "size": 10
      }
    ],
    "point_anomalies": []
  }
}

Example response snippet of the Collective And Point Anomalies endpoint.

A time series analysis API

Gain insights into the evolution of your systems

Time Door is a scalable, resilient, and fully documented API for integrated time series analysis

  • Impute missing values.
  • Automate data transformations.
  • Analyze fast streaming data.
  • Reproduce results.
Launch live demoExplore the docs
218.42
0.4839
6.875
0.809
Matrix Profile
2020-01-01 00:00:00
2020-01-01 00:16:39
t

Matrix Profile computed on 1000 data points with the Time Door API in 1141.18ms.

Deploy algorithmic variety

Time Door provides an expanding set of time series analysis algorithms that can be used to:

  • Forecast
  • Detect changepoints
  • Detect point and collective anomalies
  • Detect early warning signals of critical transitions
  • Find recurring patterns (motifs)
  • Discover changes in recurring patterns over time (chains)
  • Find serial dependencies
  • Conduct spectral analysis
  • Infer causal relations between multiple time series

Time series data

if missing values

Missing value imputation

if unfulfilled data assumptions

Data transformations

Statistical computation

f(x)

Accelerate pattern discovery

Time series data is often incomplete, non-stationary, and fast. Time Door is designed to handle all these properties without any prior data preparation and in one request:

  • Every endpoint provides advanced value imputation methods to replace missing values
  • Every endpoint provides (automatic) data transformations to deliver valid results
  • Endpoints that compute moving statistics can analyze fast data streams progressively
Explore the docs →
{
  "time_series": [
    {
      "data": {
        "2020-01-01T00:00:00Z": -0.1313,
        "2020-01-01T00:00:01Z": -0.2547,
        "2020-01-01T00:00:02Z": null,
        "2020-01-01T00:00:03Z": -0.2562,
        "2020-01-01T00:00:04Z": -2.0167,
        "2020-01-01T00:00:05Z": -1.3353,
        "2020-01-01T00:00:06Z": 1.073,
        "2020-01-01T00:00:07Z": 1.0136,
        "2020-01-01T00:00:08Z": 1.1977,
        "2020-01-01T00:00:09Z": 0.0984,
        "2020-01-01T00:00:10Z": 1.0268
      },
      "imputation": {
        "method": "ewma",
        "ma_window_size": 10
      },
      "transformations": {
        "box_cox": {
          "apply": true,
          "lambda": "auto",
          "method": "guerrero",
          "upper": 2,
          "lower": -1
        },
        "log": {
          "apply": false,
          "base": "e",
          "factor": null,
          "constant": 1
        },
        "seasonal_diff": {
          "apply": true,
          "period": "auto",
          "n_diffs": "auto",
          "test": "ss",
          "alpha": 0.05
        },
        "first_diff": {
          "apply": true,
          "n_diffs": "auto",
          "test": "kpss",
          "type": "level",
          "alpha": 0.05
        }
      }
    },
    {
      "data": {
        "2020-01-01T00:00:00Z": -1.3487,
        "2020-01-01T00:00:01Z": 1.0557,
        "2020-01-01T00:00:02Z": 1.1499,
        "2020-01-01T00:00:03Z": 1.1876,
        "2020-01-01T00:00:04Z": 0.3059,
        "2020-01-01T00:00:05Z": 0.9625,
        "2020-01-01T00:00:06Z": -1.0361,
        "2020-01-01T00:00:07Z": -0.567,
        "2020-01-01T00:00:08Z": -1.2387,
        "2020-01-01T00:00:09Z": -1.3545,
        "2020-01-01T00:00:10Z": -1.825
      },
      "imputation": {
        "method": "locf",
        "ma_window_size": 10
      },
      "transformations": {
        "box_cox": {
          "apply": false,
          "lambda": "auto",
          "method": "guerrero",
          "upper": 2,
          "lower": -1
        },
        "log": {
          "apply": true,
          "base": 10,
          "factor": 10,
          "constant": 1
        },
        "seasonal_diff": {
          "apply": false,
          "period": "auto",
          "n_diffs": "auto",
          "test": "ss",
          "alpha": 0.05
        },
        "first_diff": {
          "apply": true,
          "n_diffs": 1,
          "test": "kpss",
          "type": "level",
          "alpha": 0.05
        }
      }
    }
  ]
}

Example request with 2 time series and individual data imputation and transformation parameters. The API Docs provide full request examples.

Control each time series individually

Each time series has its own data imputation and transformation parameter set, making sophisticated multivariate time series analysis possible.

{
  "reproduction": {
    "arguments": {
      "method": "mean_var",
      "min_ca_size": 10,
      "reproduction": true,
      "precision": {
        "digits": 4,
        "method": "significant"
      }
    },
    "time_series": [
      {
        "imputed": {
          "2020-01-01T00:00:10Z": 4.326,
          "2020-01-01T00:00:15Z": 4.555
        },
        "imputation": {
          "method": "linear",
          "ma_window_size": null
        },
        "transformations": {
          "box_cox": {
            "apply": true,
            "lambda": 1.245,
            "method": "guerrero",
            "upper": 2,
            "lower": -1
          },
          "log": {
            "apply": false,
            "base": "e",
            "factor": null,
            "constant": 1
          },
          "seasonal_diff": {
            "apply": false,
            "period": null,
            "n_diffs": "auto",
            "test": "ss",
            "alpha": 0.05
          },
          "first_diff": {
            "apply": true,
            "n_diffs": 1,
            "test": "kpss",
            "type": "level",
            "alpha": 0.05
          }
        }
      }
    ]
  }
}

Example response snippet with enabled reproduction (non-default). The API Docs provide full response examples.

Reproduce results

For science applications, the Time Door API can provide all information necessary to reproduce the results. In addition to the results of statistical computations, it can return the following data:

  • All applied arguments
  • All imputed missing values
  • All applied data transformations