diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d348a4b570cef2084860d4279e052509e3ca33b..d1768c3cfdce189e0bc1f300dc43665c8a941184 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
 ### Added
 - Methods `logicalAnd` and `logicalOr`
 - `Flags` supports slicing and column selection with `list` or a `pd.Index`.
+- added option `limit` to functions `interpolate` and `linear`.
 ### Changed
 ### Removed
 ### Fixed
diff --git a/saqc/funcs/interpolation.py b/saqc/funcs/interpolation.py
index 9def348d0594a7528536675ff33a3e18aa5e459f..f4465f9c9da4b831e4effa1e39d1790e0d97f755 100644
--- a/saqc/funcs/interpolation.py
+++ b/saqc/funcs/interpolation.py
@@ -287,7 +287,7 @@ class InterpolationMixin:
         freq: str,
         method: _SUPPORTED_METHODS,
         order: int = 2,
-        limit: int | None = 2,
+        limit: int | str | None = 2,
         extrapolate: Literal["forward", "backward", "both"] = None,
         **kwargs,
     ) -> "SaQC":
diff --git a/saqc/funcs/resampling.py b/saqc/funcs/resampling.py
index ebc02bd4bf0ad1e890050a42138c8c36fcefa253..4a792cae1f3a30738906f298fa540a888eb39e99 100644
--- a/saqc/funcs/resampling.py
+++ b/saqc/funcs/resampling.py
@@ -40,6 +40,7 @@ class ResamplingMixin:
         self: "SaQC",
         field: str,
         freq: str,
+        limit: int | str | None = None,
         **kwargs,
     ) -> "SaQC":
         """
@@ -62,21 +63,30 @@ class ResamplingMixin:
         freq : str
             An offset string. The frequency of the grid you want to interpolate your data at.
 
+        limit : int or str, optional
+            Upper limit of missing values (with respect to `freq`) to fill. The limit can either be expressed
+            as the number of consecutive missing values (integer) or temporal extension of the gaps to be filled
+            (Offset String).
+            If `None` is passed, no Limit is set.
+
         Returns
         -------
         saqc.SaQC
         """
-        reserved = ["method", "order", "limit", "downgrade"]
+        reserved = ["method", "order", "downgrade"]
         kwargs = filterKwargs(kwargs, reserved)
-        return self.interpolateIndex(field, freq, "time", **kwargs)
+        return self.interpolateIndex(
+            field=field, freq=freq, method="time", limit=limit, **kwargs
+        )
 
     @register(mask=["field"], demask=[], squeeze=[])
     def interpolate(
         self: "SaQC",
         field: str,
         freq: str,
-        method: _SUPPORTED_METHODS,
+        method: _SUPPORTED_METHODS = "linear",
         order: int = 1,
+        limit: int | str | None = None,
         **kwargs,
     ) -> "SaQC":
         """
@@ -106,20 +116,28 @@ class ResamplingMixin:
             An offset string. The frequency of the grid you want to interpolate your data at.
 
         method : {"linear", "time", "nearest", "zero", "slinear", "quadratic", "cubic", "spline", "barycentric",
-            "polynomial", "krogh", "piecewise_polynomial", "spline", "pchip", "akima"}
+            "polynomial", "krogh", "piecewise_polynomial", "spline", "pchip", "akima"}, default "linear"
             The interpolation method you want to apply.
 
         order : int, default 1
             If your selected interpolation method can be performed at different *orders* - here you pass the desired
             order.
 
+        limit : int or str, optional
+            Upper limit of missing values (with respect to `freq`) to fill. The limit can either be expressed
+            as the number of consecutive missing values (integer) or temporal extension of the gaps to be filled
+            (Offset String).
+            If `None` is passed, no Limit is set.
+
         Returns
         -------
         saqc.SaQC
         """
-        reserved = ["limit", "downgrade"]
+        reserved = ["downgrade"]
         kwargs = filterKwargs(kwargs, reserved)
-        return self.interpolateIndex(field, freq, method=method, order=order, **kwargs)
+        return self.interpolateIndex(
+            field=field, freq=freq, method=method, limit=limit, order=order, **kwargs
+        )
 
     @register(mask=["field"], demask=[], squeeze=[])
     def shift(