Install & Compatibility
Where this runs
tested against v3.7.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.940 runs
installs and imports cleanly · install 0.0s · import 0.000s · 21MB
glibcpy 3.10–3.940 runs
installs and imports cleanly · install 3.1s · import 0.000s · 21MB
19MB installed
● package 19MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
IAMClient
✓ from types_aiobotocore_iam import IAMClient
✗ from types_aiobotocore_iam import IAMClient
This quickstart demonstrates how to use `types-aiobotocore-iam` to provide type hints for an `aiobotocore` IAM client. It shows importing the `IAMClient` and a response `TypeDef` within a `TYPE_CHECKING` block for static analysis, then uses it to list IAM users.
import asyncio
from typing import TYPE_CHECKING
from aiobotocore.session import get_session
# Import type stubs only during type checking to avoid runtime dependencies
if TYPE_CHECKING:
from types_aiobotocore_iam.client import IAMClient
from types_aiobotocore_iam.type_defs import ListUsersResponseTypeDef
async def list_iam_users():
session = get_session()
async with session.create_client("iam") as client:
# Explicitly hint the client type for better IDE support
client: IAMClient = client
print("Listing IAM users...")
try:
# Type-hint the response for static analysis and auto-completion
response: ListUsersResponseTypeDef = await client.list_users()
for user in response.get("Users", []):
print(f" User: {user.get('UserName')} (ARN: {user.get('Arn')})")
except Exception as e:
print(f"Error listing users: {e}")
if __name__ == "__main__":
# This example requires valid AWS credentials configured in the environment
# or ~/.aws/credentials. Ensure your IAM user has 'iam:ListUsers' permission.
asyncio.run(list_iam_users())
Debug
Known issues
breakingSupport for Python 3.8 has been removed in `mypy-boto3-builder` version 8.12.0 and subsequent `types-aiobotocore-*` packages. Projects targeting Python 3.8 will no longer receive updates or new type stubs.fixUpgrade your project's Python version to 3.9 or newer. Ensure your `requires_python` is set appropriately. [2]
affects: >=3.4.0 (for types-aiobotocore-iam), >=8.12.0 (for mypy-boto3-builder)
breakingStarting with `mypy-boto3-builder` 8.9.0, there were breaking changes to `TypeDef` naming conventions. Specifically, `TypeDefs` for packed method arguments use shorter names (e.g., `CreateDistributionRequestRequestTypeDef` -> `CreateDistributionRequestTypeDef`), and conflicting `TypeDef` 'Extra' postfixes were moved to the end (e.g., `CreateDistributionExtraRequestTypeDef` -> `CreateDistributionRequestExtraTypeDef`).fixUpdate your code to use the new `TypeDef` names. Consult the `types-aiobotocore` documentation or regenerate stubs if using `mypy-boto3-builder` directly. [14]
affects: <3.4.0 (for types-aiobotocore-iam), >=8.9.0 (for mypy-boto3-builder)
gotchaTo prevent `types-aiobotocore-*` packages from becoming runtime dependencies, it is best practice to wrap all imports of types from these libraries within a `if typing.TYPE_CHECKING:` block.fixEnclose type stub imports like `from types_aiobotocore_iam.client import IAMClient` within `if TYPE_CHECKING:` conditional blocks. [2, 6]
affects: All versions
gotchaPyCharm's built-in type checker may experience slow performance and high CPU usage, especially with `Literal` overloads present in these stubs. This is a known issue (PY-40997).fixIt is recommended to use an external type checker like MyPy or Pyright instead of PyCharm's built-in one. Alternatively, consider using `types-aiobotocore-lite` or disable PyCharm's type checker for these libraries. [7, 20]
affects: All versions
Upgrade
Version history
3.7.0latest on PyPI · released May 10, 2026
Audit
Dependencies
aiobotocorerequiredProvides the asynchronous AWS client that these stubs type-hint.