# Create a materialized feature

Launch stage: Public Preview

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

Create a materialized feature.

API scopes: mlflow

## Request body

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

Returns the MaterializedFeature object.

## Response

```json
{
  "materialized_feature_id": "string",
  "feature_name": "string",
  "online_store_config": {
    "online_store_name": "string"
  },
  "table_name": "string",
  "last_materialization_time": "string",
  "is_online": true,
  "cron_schedule_trigger": {
    "cron_expression": "string"
  },
  "table_trigger": {},
  "streaming_mode": {
    "mode": "STREAMING_MODE_TYPE_RTM"
  }
}
```

