# Batch create materialized features

Launch stage: Beta

`POST /api/2.0/feature-engineering/materialized-features:batchCreate`

Batch create materialized features.

API scopes: mlflow

## Request body

- `requests` (array of object, required)
  The requests to create materialized features.
  - `materialized_feature` (object, required)
    The materialized feature to create.
    - `materialized_feature_id` (string, optional, ID, Immutable)
      Server-assigned unique identifier for the materialized feature.
    - `feature_name` (string, required)
      The full name of the feature in Unity Catalog.
    - `offline_store_config` (object, optional, Input only, Immutable)
      Destination for writing feature values to an offline Delta table. The resulting table is
       returned as `table_name`.
      - `catalog_name` (string, required)
        The Unity Catalog catalog name.
      - `schema_name` (string, required)
        The Unity Catalog schema name.
      - `table_name_prefix` (string, required)
        Prefix for Unity Catalog table name.
         The materialized feature will be stored in a table with this prefix and a generated postfix.
    - `online_store_config` (object, optional, Immutable)
      Destination for writing feature values to an online Lakebase table. The resulting table is
       returned as `table_name`.
      - `catalog_name` (string, required, Input only)
        The Unity Catalog catalog name. This name is also used as the Lakebase logical database name.
         Quoting is handled by the backend where needed, do not pre-quote it.
      - `schema_name` (string, required, Input only)
        The Unity Catalog schema name. This name is also used as the Lakebase schema name under the database.
         Quoting is handled by the backend where needed, do not pre-quote it.
      - `table_name_prefix` (string, required, Input only)
        Prefix for Unity Catalog table name.
         The materialized feature will be stored in a Lakebase table with this prefix and a generated postfix.
      - `online_store_name` (string, required)
        The name of the target online store.
    - `cron_schedule_trigger` (object, optional)
      A cron-based schedule trigger for the materialization pipeline.
      - `cron_expression` (string, optional)
        The cron expression defining the schedule (e.g., "0 0 * * *" for daily at midnight). The
         schedule is interpreted in timezone_id (defaults to UTC). Required when mode is MANUAL (or
         unset). Left empty when mode is DERIVED, where the service computes it (aligned to UTC) from
         the features' window timing and fills it in on the response.
    - `table_trigger` (object, optional)
      A trigger that fires when the upstream source table changes.
    - `streaming_mode` (object, optional)
      The Structured Streaming trigger mode used for materialization. Real-time mode (RTM) targets
       sub-second latency for operational workloads; micro-batch mode (MBM) favors cost efficiency
       for ETL and analytics workloads.
      - `mode` (string, optional)
        The type of streaming mode used by the materialization pipeline.
        Possible values:
        - `STREAMING_MODE_TYPE_UNSPECIFIED`
        - `STREAMING_MODE_TYPE_RTM`
        - `STREAMING_MODE_TYPE_MBM`

## Returns

- `materialized_features` (array of object, optional)
  The created materialized features with assigned IDs.
  - `materialized_feature_id` (string, optional, ID, Immutable)
    Server-assigned unique identifier for the materialized feature.
  - `feature_name` (string, required)
    The full name of the feature in Unity Catalog.
  - `online_store_config` (object, optional, Immutable)
    Destination for writing feature values to an online Lakebase table. The resulting table is
     returned as `table_name`.
    - `online_store_name` (string, required)
      The name of the target online store.
  - `table_name` (string, optional, Output only)
    The fully qualified Unity Catalog path to the table containing the materialized feature (Delta table or Lakebase table). Output only.
  - `last_materialization_time` (string, optional, Output only)
    The timestamp when the pipeline last ran and updated the materialized feature values.
     If the pipeline has not run yet, this field will be null.
  - `is_online` (boolean, optional, Output only)
    True if this is an online materialized feature. False if it is an offline materialized feature.
  - `cron_schedule_trigger` (object, optional)
    A cron-based schedule trigger for the materialization pipeline.
    - `cron_expression` (string, optional)
      The cron expression defining the schedule (e.g., "0 0 * * *" for daily at midnight). The
       schedule is interpreted in timezone_id (defaults to UTC). Required when mode is MANUAL (or
       unset). Left empty when mode is DERIVED, where the service computes it (aligned to UTC) from
       the features' window timing and fills it in on the response.
  - `table_trigger` (object, optional)
    A trigger that fires when the upstream source table changes.
  - `streaming_mode` (object, optional)
    The Structured Streaming trigger mode used for materialization. Real-time mode (RTM) targets
     sub-second latency for operational workloads; micro-batch mode (MBM) favors cost efficiency
     for ETL and analytics workloads.
    - `mode` (string, optional)
      The type of streaming mode used by the materialization pipeline.
      Possible values:
      - `STREAMING_MODE_TYPE_UNSPECIFIED`
      - `STREAMING_MODE_TYPE_RTM`
      - `STREAMING_MODE_TYPE_MBM`

## Response

```json
{
  "materialized_features": [
    {
      "materialized_feature_id": "string",
      "feature_name": "string",
      "online_store_config": {},
      "table_name": "string",
      "last_materialization_time": "string",
      "is_online": true,
      "cron_schedule_trigger": {},
      "table_trigger": {},
      "streaming_mode": {}
    }
  ]
}
```

