diff --git a/api/units/data_rate.h b/api/units/data_rate.h
index c2202d6..4bb988b 100644
--- a/api/units/data_rate.h
+++ b/api/units/data_rate.h
@@ -16,6 +16,7 @@
 #endif              // UNIT_TEST
 
 #include <stdint.h>
+#include <algorithm>
 #include <cmath>
 #include <limits>
 #include <string>
@@ -133,6 +134,12 @@
     return bits_per_sec_ == data_rate_impl::kPlusInfinityVal;
   }
   constexpr bool IsFinite() const { return !IsInfinite(); }
+  DataRate Clamped(DataRate min_rate, DataRate max_rate) const {
+    return std::max(min_rate, std::min(*this, max_rate));
+  }
+  void Clamp(DataRate min_rate, DataRate max_rate) {
+    *this = Clamped(min_rate, max_rate);
+  }
   DataRate operator-(const DataRate& other) const {
     return DataRate::bps(bps() - other.bps());
   }
diff --git a/api/units/data_rate_unittest.cc b/api/units/data_rate_unittest.cc
index be02090..8e5b660 100644
--- a/api/units/data_rate_unittest.cc
+++ b/api/units/data_rate_unittest.cc
@@ -92,6 +92,26 @@
   EXPECT_TRUE(DataRate::bps(kInfinity).IsInfinite());
   EXPECT_TRUE(DataRate::kbps(kInfinity).IsInfinite());
 }
+TEST(DataRateTest, Clamping) {
+  const DataRate upper = DataRate::kbps(800);
+  const DataRate lower = DataRate::kbps(100);
+  const DataRate under = DataRate::kbps(100);
+  const DataRate inside = DataRate::kbps(500);
+  const DataRate over = DataRate::kbps(1000);
+  EXPECT_EQ(under.Clamped(lower, upper), lower);
+  EXPECT_EQ(inside.Clamped(lower, upper), inside);
+  EXPECT_EQ(over.Clamped(lower, upper), upper);
+
+  DataRate mutable_rate = lower;
+  mutable_rate.Clamp(lower, upper);
+  EXPECT_EQ(mutable_rate, lower);
+  mutable_rate = inside;
+  mutable_rate.Clamp(lower, upper);
+  EXPECT_EQ(mutable_rate, inside);
+  mutable_rate = over;
+  mutable_rate.Clamp(lower, upper);
+  EXPECT_EQ(mutable_rate, upper);
+}
 
 TEST(DataRateTest, MathOperations) {
   const int64_t kValueA = 450;
