diff --git a/sdk/timeseriesinsights/Azure.Iot.TimeSeriesInsights/design/TimeSeriesTypes_API_Design.md b/sdk/timeseriesinsights/Azure.Iot.TimeSeriesInsights/design/TimeSeriesTypes_API_Design.md
new file mode 100644
index 0000000000000..1055419a80a7f
--- /dev/null
+++ b/sdk/timeseriesinsights/Azure.Iot.TimeSeriesInsights/design/TimeSeriesTypes_API_Design.md
@@ -0,0 +1,102 @@
+# Time Series Insights
+
+## Types
+
+Time Series Model types help you define variables or formulas for doing computations. Types are associated with a specific instance.
+
+A type can have one or more variables. For example, a Time Series Model instance might be of type Temperature Sensor, which consists of the variables avg temperature, min temperature, and max temperature.
+
+### GET /timeseries/types
+
+Returns time series types in pages.
+
+```csharp
+///
+/// Gets time series insight types in pages asynchronously.
+///
+/// The cancellation token.
+/// The pageable list of Time Series instances types with the http response.
+public virtual AsyncPageable GetTimeSeriesTypesAsync(
+ CancellationToken cancellationToken = default)
+```
+
+### POST /timeseries/types
+
+Executes a batch get, create, update, delete operation on multiple time series types.
+
+#### Get Time Series Insights Types
+
+```csharp
+///
+/// Gets time series insight types by Time Series Id asynchronously.
+///
+/// List of Ids of the Time Series instances.
+/// The cancellation token.
+/// List of types or error objects corresponding by position to the array in the request. Type object is set when operation is successful and error object is set when operation is unsuccessful.
+public virtual async Task> GetTimeSeriesTypesAsync(
+ IEnumerable timeSeriesIds,
+ CancellationToken cancellationToken = default)
+```
+
+```csharp
+///
+/// Gets time series insight types by Time Series Names asynchronously.
+///
+/// List of names of the Time Series instances.
+/// The cancellation token.
+/// List of types or error objects corresponding by position to the array in the request. Type object is set when operation is successful and error object is set when operation is unsuccessful.
+public virtual async Task> GetTimeSeriesTypesAsync(
+ IEnumerable timeSeriesNames,
+ CancellationToken cancellationToken = default)
+```
+
+#### Create OR Replace Time Series Insights Types
+
+```csharp
+///
+/// Creates Time Series instances types asynchronously. If a provided instance type is already in use, then this will attempt to replace the existing instance type with the provided Time Series Instance.
+///
+/// The Time Series instances types to be created or replaced.
+/// The cancellation token.
+///
+/// List of error objects corresponding by position to the array in the request.
+/// An error object will be set when operation is unsuccessful.
+///
+public virtual async Task> CreateOrReplaceTimeSeriesTypesAsync(
+ IEnumerable timeSeriesTypes,
+ CancellationToken cancellationToken = default)
+```
+
+#### Delete Time Series Insights Types
+
+```csharp
+///
+/// Deletes Time Series instances types asynchronously.
+///
+/// List of Ids of the Time Series instances.
+/// The cancellation token.
+///
+/// List of error objects corresponding by position to the array in the request.
+/// An error object will be set when operation is unsuccessful.
+/// null will be set when the operation is successful.
+///
+public virtual async Task> DeleteTimeSeriesTypesAsync(
+ IEnumerable timeSeriesIds,
+ CancellationToken cancellationToken = default)
+```
+
+```csharp
+///
+/// Deletes Time Series instances types asynchronously.
+///
+/// List of names of the Time Series instances.
+/// The cancellation token.
+///
+/// List of error objects corresponding by position to the array in the request.
+/// An error object will be set when operation is unsuccessful.
+/// null will be set when the operation is successful.
+///
+public virtual async Task> DeleteTimeSeriesTypesAsync(
+ IEnumerable timeSeriesNames,
+ CancellationToken cancellationToken = default)
+```
\ No newline at end of file