diff --git a/api/v3/utils.php b/api/v3/utils.php
index d3d6c882a71c8bd2fcad23e8495da158263b4655..3a940ac389b801fa7bcc89930d8a58640f6b9d10 100644
--- a/api/v3/utils.php
+++ b/api/v3/utils.php
@@ -2059,6 +2059,10 @@ function _civicrm_api3_swap_out_aliases(&$apiRequest, $fields) {
  */
 function _civicrm_api3_validate_integer(&$params, $fieldName, &$fieldInfo, $entity) {
   list($fieldValue, $op) = _civicrm_api3_field_value_check($params, $fieldName);
+  if ($fieldName === 'auto_renew' && $fieldValue === TRUE) {
+    // https://lab.civicrm.org/dev/rc/-/issues/14
+    $fieldValue = 1;
+  }
   if (strpos($op, 'NULL') !== FALSE || strpos($op, 'EMPTY') !== FALSE) {
     return;
   }
diff --git a/tests/phpunit/api/v3/MembershipTypeTest.php b/tests/phpunit/api/v3/MembershipTypeTest.php
index 4ffc4b1437f43073d4a573dff0e65ad550d5fa64..d1eb1671066ac025be8e39fb06d0c9569a96392d 100644
--- a/tests/phpunit/api/v3/MembershipTypeTest.php
+++ b/tests/phpunit/api/v3/MembershipTypeTest.php
@@ -184,6 +184,24 @@ class api_v3_MembershipTypeTest extends CiviUnitTestCase {
     ]);
   }
 
+  /**
+   * Test that auto renew = TRUE still works post schema change.
+   *
+   * https://lab.civicrm.org/dev/rc/-/issues/14
+   */
+  public function testCreateMembershipTypeAutoRenewBool(): void {
+    $this->callAPISuccess('MembershipType', 'create', [
+      'member_of_contact_id' => 1,
+      'financial_type_id' => 'Member Dues',
+      'duration_unit' => 'year',
+      'duration_interval' => 1,
+      'period_type' => 'rolling',
+      'minimum_fee' => 1,
+      'name' => 'gen',
+      'auto_renew' => TRUE,
+    ]);
+  }
+
   /**
    * Test update.
    *