‹ Plugins / Prophet Forecasting
Scheduled HTTP

Prophet Forecasting

The Prophet Forecasting plugin generates forecasts directly in InfluxDB 3, helping teams move from monitoring what happened to predicting what’s next. It’s ideal for demand, capacity, IoT, and infrastructure planning, without adding a separate forecasting stack.

Configuration

Plugin parameters may be specified as key-value pairs in the --trigger-arguments flag (CLI) or in the trigger_arguments field (API) when creating a trigger. Some plugins support TOML configuration files, which can be specified using the plugin’s config_file_path parameter.

If a plugin supports multiple trigger specifications, some parameters may depend on the trigger specification that you use.

Plugin metadata

This plugin includes a JSON metadata schema in its docstring that defines supported trigger types and configuration parameters. This metadata enables the InfluxDB 3 Explorer UI to display and configure the plugin.

Scheduled trigger parameters

Set these parameters with --trigger-arguments when creating a scheduled trigger:

Parameter Type Default Description
measurement string required Source measurement containing historical data
field string required Field name to forecast
window string required Historical data window. Format: <number><unit> (for example, “30d”)
forecast_horizont string required Forecast duration. Format: <number><unit> (for example, “2d”)
tag_values string required Dot-separated tag filters (for example, “region:us-west.device:sensor1”)
target_measurement string required Destination measurement for forecast results
model_mode string required Operation mode: “train” or “predict”
unique_suffix string required Unique model identifier for versioning

HTTP request parameters

Send these parameters as JSON in the HTTP POST request body:

Parameter Type Default Description
measurement string required Source measurement containing historical data
field string required Field name to forecast
forecast_horizont string required Forecast duration. Format: <number><unit> (e.g., “7d”)
tag_values object required Tag filters as JSON object (e.g., {“region”:”us-west”})
target_measurement string required Destination measurement for forecast results
unique_suffix string required Unique model identifier for versioning
start_time string required Historical window start (ISO 8601 format)
end_time string required Historical window end (ISO 8601 format)

Advanced parameters

Parameter Type Default Description
seasonality_mode string “additive” Prophet seasonality mode: “additive” or “multiplicative”
changepoint_prior_scale number 0.05 Flexibility of trend changepoints
changepoints string/array none Changepoint dates (ISO format)
holiday_date_list string/array none Custom holiday dates (ISO format)
holiday_names string/array none Holiday names corresponding to dates
holiday_country_names string/array none Country codes for built-in holidays
inferred_freq string auto Manual frequency specification (e.g., “1D”, “1H”)
validation_window string “0s” Validation period duration
msre_threshold number infinity Maximum acceptable Mean Squared Relative Error
target_database string current Database for forecast storage
save_mode string “false” Whether to save/load models (HTTP only)

Notification parameters

Parameter Type Default Description
is_sending_alert string “false” Enable alerts on validation failure
notification_text string template Custom alert message template
senders string none Dot-separated notification channels
notification_path string “notify” Notification endpoint path
influxdb3_auth_token string env var Authentication token

TOML configuration

Parameter Type Default Description
config_file_path string none TOML config file path relative to PLUGIN_DIR (required for TOML configuration)

To use a TOML configuration file, set the PLUGIN_DIR environment variable and specify the config_file_path in the trigger arguments. This is in addition to the --plugin-dir flag when starting InfluxDB 3.

Example TOML configuration

prophet_forecasting_scheduler.toml

For more information on using TOML configuration files, see the Using TOML Configuration Files section in the influxdb3_plugins/README.md.

Examples

Example 1: Basic scheduled forecasting

Write historical data and create a forecast:

# Write historical temperature data
influxdb3 write \
  --database mydb \
  "temperature,region=us-west,device=sensor1 value=22.5"

# Create and enable the trigger
influxdb3 create trigger \
  --database mydb \
  --path "gh:influxdata/prophet_forecasting/prophet_forecasting.py" \
  --trigger-spec "every:1d" \
  --trigger-arguments "measurement=temperature,field=value,window=30d,forecast_horizont=2d,tag_values=region:us-west.device:sensor1,target_measurement=temperature_forecast,model_mode=train,unique_suffix=v1" \
  prophet_forecast

influxdb3 enable trigger --database mydb prophet_forecast

# Query forecast results (after trigger runs)
influxdb3 query \
  --database mydb \
  "SELECT time, forecast, yhat_lower, yhat_upper FROM temperature_forecast ORDER BY time DESC LIMIT 5"

Expected output

+----------------------+---------+------------+------------+
| time                 | forecast| yhat_lower | yhat_upper |
+----------------------+---------+------------+------------+
| 2025-06-21T00:00:00Z | 23.2    | 21.8       | 24.6       |
| 2025-06-20T00:00:00Z | 22.9    | 21.5       | 24.3       |
+----------------------+---------+------------+------------+

Example 2: On-demand HTTP forecasting

Example HTTP request for on-demand forecasting:

curl -X POST http://localhost:8181/api/v3/engine/forecast \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "measurement": "temperature",
    "field": "value",
    "forecast_horizont": "7d",
    "tag_values": {"region":"us-west","device":"sensor1"},
    "target_measurement": "temperature_forecast",
    "unique_suffix": "model_v1_20250722",
    "start_time": "2025-05-20T00:00:00Z",
    "end_time": "2025-06-19T00:00:00Z",
    "seasonality_mode": "additive",
    "changepoint_prior_scale": 0.05,
    "validation_window": "3d",
    "msre_threshold": 0.05
  }'

Advanced forecasting with holidays

curl -X POST http://localhost:8181/api/v3/engine/forecast \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "measurement": "sales",
    "field": "revenue",
    "forecast_horizont": "30d",
    "tag_values": {"store":"main_branch"},
    "target_measurement": "revenue_forecast",
    "unique_suffix": "retail_model_v2",
    "start_time": "2024-01-01T00:00:00Z",
    "end_time": "2025-06-01T00:00:00Z",
    "holiday_country_names": ["US"],
    "holiday_date_list": ["2025-07-04"],
    "holiday_names": ["Independence Day"],
    "changepoints": ["2025-01-01", "2025-03-01"],
    "inferred_freq": "1D"
  }'

Ready to get started?

Download InfluxDB 3 and have Prophet Forecasting running in minutes.