diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index dcabbf4..8bb1315 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,7 +1,7 @@
 repos:
   - repo: https://github.com/python/black
-    rev: 19.3b0
+    rev: 24.10.0
     hooks:
       - id: black
-        language_version: python3.6
+        language_version: python3.9
         exclude_types: ['markdown', 'ini', 'toml', 'rst']
diff --git a/README.md b/README.md
index 8a448bd..c3cba04 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ You can include this package in your preferred base image to make that base imag
 
 ## Requirements
 The Python Runtime Interface Client package currently supports Python versions:
- - 3.7.x up to and including 3.12.x
+ - 3.9.x up to and including 3.13.x
 
 ## Usage
 
diff --git a/awslambdaric/bootstrap.py b/awslambdaric/bootstrap.py
index 0f19f56..88353a5 100644
--- a/awslambdaric/bootstrap.py
+++ b/awslambdaric/bootstrap.py
@@ -454,9 +454,10 @@ def run(app_root, handler, lambda_runtime_api_addr):
     sys.stdout = Unbuffered(sys.stdout)
     sys.stderr = Unbuffered(sys.stderr)
 
-    use_thread_for_polling_next = (
-        os.environ.get("AWS_EXECUTION_ENV") == "AWS_Lambda_python3.12"
-    )
+    use_thread_for_polling_next = os.environ.get("AWS_EXECUTION_ENV") in {
+        "AWS_Lambda_python3.12",
+        "AWS_Lambda_python3.13",
+    }
 
     with create_log_sink() as log_sink:
         lambda_runtime_client = LambdaRuntimeClient(
diff --git a/awslambdaric/lambda_runtime_marshaller.py b/awslambdaric/lambda_runtime_marshaller.py
index 3b28313..4256066 100644
--- a/awslambdaric/lambda_runtime_marshaller.py
+++ b/awslambdaric/lambda_runtime_marshaller.py
@@ -15,7 +15,10 @@
 # We also set 'ensure_ascii=False' so that the encoded json contains unicode characters instead of unicode escape sequences
 class Encoder(json.JSONEncoder):
     def __init__(self):
-        if os.environ.get("AWS_EXECUTION_ENV") == "AWS_Lambda_python3.12":
+        if os.environ.get("AWS_EXECUTION_ENV") in {
+            "AWS_Lambda_python3.12",
+            "AWS_Lambda_python3.13",
+        }:
             super().__init__(use_decimal=False, ensure_ascii=False, allow_nan=True)
         else:
             super().__init__(use_decimal=False, allow_nan=True)
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 68377ce..73d8f15 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -5,6 +5,7 @@ pytest-cov>=2.4.0
 pylint>=1.7.2
 black>=20.8b0
 bandit>=1.6.2
+setuptools
 
 # Test requirements
 pytest>=3.0.7
diff --git a/setup.py b/setup.py
index 2544b21..2bf28ef 100644
--- a/setup.py
+++ b/setup.py
@@ -84,17 +84,15 @@ def read_requirements(req="base.txt"):
         "Intended Audience :: Developers",
         "Natural Language :: English",
         "Programming Language :: Python :: 3",
-        "Programming Language :: Python :: 3.6",
-        "Programming Language :: Python :: 3.7",
-        "Programming Language :: Python :: 3.8",
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
         "Programming Language :: Python :: 3.12",
+        "Programming Language :: Python :: 3.13",
         "License :: OSI Approved :: Apache Software License",
         "Operating System :: OS Independent",
     ],
-    python_requires=">=3.6",
+    python_requires=">=3.9",
     ext_modules=get_runtime_client_extension(),
     test_suite="tests",
 )
diff --git a/tests/integration/codebuild/buildspec.os.alpine.yml b/tests/integration/codebuild/buildspec.os.alpine.yml
index f3c53e1..8b290f5 100644
--- a/tests/integration/codebuild/buildspec.os.alpine.yml
+++ b/tests/integration/codebuild/buildspec.os.alpine.yml
@@ -22,6 +22,7 @@ batch:
             - "3.10"
             - "3.11"
             - "3.12"
+            - "3.13"
 phases:
   pre_build:
     commands:
diff --git a/tests/integration/codebuild/buildspec.os.amazonlinux.2.yml b/tests/integration/codebuild/buildspec.os.amazonlinux.2.yml
index f8b7126..b7577c4 100644
--- a/tests/integration/codebuild/buildspec.os.amazonlinux.2.yml
+++ b/tests/integration/codebuild/buildspec.os.amazonlinux.2.yml
@@ -21,6 +21,7 @@ batch:
             - "3.10"
             - "3.11"
             - "3.12"
+            - "3.13"
 phases:
   pre_build:
     commands:
diff --git a/tests/integration/codebuild/buildspec.os.debian.yml b/tests/integration/codebuild/buildspec.os.debian.yml
index 008e6e8..44c061f 100644
--- a/tests/integration/codebuild/buildspec.os.debian.yml
+++ b/tests/integration/codebuild/buildspec.os.debian.yml
@@ -22,6 +22,7 @@ batch:
             - "3.10"
             - "3.11"
             - "3.12"
+            - "3.13"
 phases:
   pre_build:
     commands:
diff --git a/tests/integration/codebuild/buildspec.os.ubuntu.yml b/tests/integration/codebuild/buildspec.os.ubuntu.yml
index ac7c6db..a6e556d 100644
--- a/tests/integration/codebuild/buildspec.os.ubuntu.yml
+++ b/tests/integration/codebuild/buildspec.os.ubuntu.yml
@@ -22,6 +22,7 @@ batch:
             - "3.10"
             - "3.11"
             - "3.12"
+            - "3.13"
 phases:
   pre_build:
     commands:
diff --git a/tests/test_lambda_runtime_marshaller.py b/tests/test_lambda_runtime_marshaller.py
index 7cd73b4..843bcee 100644
--- a/tests/test_lambda_runtime_marshaller.py
+++ b/tests/test_lambda_runtime_marshaller.py
@@ -11,13 +11,17 @@
 
 class TestLambdaRuntimeMarshaller(unittest.TestCase):
     execution_envs = (
+        "AWS_Lambda_python3.13",
         "AWS_Lambda_python3.12",
         "AWS_Lambda_python3.11",
         "AWS_Lambda_python3.10",
         "AWS_Lambda_python3.9",
     )
 
-    envs_lambda_marshaller_ensure_ascii_false = {"AWS_Lambda_python3.12"}
+    envs_lambda_marshaller_ensure_ascii_false = {
+        "AWS_Lambda_python3.12",
+        "AWS_Lambda_python3.13",
+    }
 
     execution_envs_lambda_marshaller_ensure_ascii_true = tuple(
         set(execution_envs).difference(envs_lambda_marshaller_ensure_ascii_false)