Install & Compatibility
Where this runs
tested against v1.43.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.666s · 52.3MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 4.5s · import 0.624s · 53MB
51MB installed
● package 51MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
APIGatewayClient
✓ from mypy_boto3_apigateway.client import APIGatewayClient
GetRestApisRequestRequestTypeDef
✓ from mypy_boto3_apigateway.type_defs import GetRestApisRequestRequestTypeDef
GetRestApisResponseTypeDef
✓ from mypy_boto3_apigateway.type_defs import GetRestApisResponseTypeDef
boto3.client
✓ import boto3; client: APIGatewayClient = boto3.client('apigateway')
✗ from boto3.client import apigateway; client = apigateway.Client()
mypy-boto3 stubs enhance the standard `boto3.client` factory method. Direct imports from `boto3.client.*` are not how boto3 clients are typically instantiated or type-hinted with these stubs.
This quickstart demonstrates how to initialize an APIGateway client with `boto3` and apply type hints using `mypy-boto3-apigateway`. It shows how to use generated `TypedDict` for both request parameters and response objects, enabling `mypy` to validate API calls.
import boto3
from mypy_boto3_apigateway.client import APIGatewayClient
from mypy_boto3_apigateway.type_defs import GetRestApisRequestRequestTypeDef, GetRestApisResponseTypeDef
# Configure AWS credentials if not using default profile/env vars
# import os
# os.environ['AWS_ACCESS_KEY_ID'] = os.environ.get('AWS_ACCESS_KEY_ID', '')
# os.environ['AWS_SECRET_ACCESS_KEY'] = os.environ.get('AWS_SECRET_ACCESS_KEY', '')
# os.environ['AWS_REGION'] = os.environ.get('AWS_REGION', 'us-east-1')
def list_apigateway_rest_apis() -> None:
"""Lists up to 10 APIGateway REST APIs and demonstrates type hinting."""
# Type hint the client for static analysis
client: APIGatewayClient = boto3.client("apigateway")
# Use a TypedDict for request parameters, ensuring correct types and keys
request_params: GetRestApisRequestRequestTypeDef = {
"position": "0",
"limit": 10
}
# The response is also a TypedDict, allowing safe attribute access
response: GetRestApisResponseTypeDef = client.get_rest_apis(**request_params)
print(f"Found {len(response.get('items', []))} REST APIs:")
for item in response.get('items', []):
name = item.get('name', 'N/A')
api_id = item.get('id', 'N/A')
print(f"- {name} (ID: {api_id})")
# mypy would flag issues like:
# print(response['non_existent_key']) # Error: Key 'non_existent_key' not found in GetRestApisResponseTypeDef
if __name__ == "__main__":
list_apigateway_rest_apis()
Upgrade
Version history
1.43.0latest on PyPI · released Apr 29, 2026
Audit
Dependencies
boto3requiredThe stubs are for the boto3 library; boto3 itself is required for runtime.
botocore-stubsrequiredDirect dependency for underlying Botocore types.
typing-extensionsoptionalProvides backported type features for older Python versions, explicitly listed as a requirement.