# aiobotocore

> Async client for aws services using botocore and aiohttp

- **URL**: https://www.freshcrate.ai/projects/aiobotocore
- **Author**: pypi
- **Category**: Frameworks
- **Latest version**: `3.7.0` (2026-05-09)
- **License**: Unknown
- **Source**: https://github.com/aio-libs/aiobotocore
- **Homepage**: https://pypi.org/project/aiobotocore/
- **Language**: Python
- **GitHub**: 1,402 stars, 205 forks
- **Registry**: pypi (`aiobotocore`)
- **Tags**: `pypi`

## Description

aiobotocore
===========
.. |ci badge| image:: https://github.com/aio-libs/aiobotocore/actions/workflows/ci-cd.yml/badge.svg?branch=main
    :target: https://github.com/aio-libs/aiobotocore/actions/workflows/ci-cd.yml
    :alt: CI status of main branch
.. |pre-commit badge| image:: https://results.pre-commit.ci/badge/github/aio-libs/aiobotocore/main.svg
    :target: https://results.pre-commit.ci/latest/github/aio-libs/aiobotocore/main
    :alt: pre-commit.ci status
.. |coverage badge| image:: https://codecov.io/gh/aio-libs/aiobotocore/branch/main/graph/badge.svg
    :target: https://codecov.io/gh/aio-libs/aiobotocore
    :alt: Coverage status on main branch
.. |docs badge| image:: https://readthedocs.org/projects/aiobotocore/badge/?version=latest
    :target: https://aiobotocore.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation Status
.. |pypi badge| image:: https://img.shields.io/pypi/v/aiobotocore.svg
    :target: https://pypi.python.org/pypi/aiobotocore
    :alt: Latest version on pypi
.. |gitter badge| image:: https://badges.gitter.im/Join%20Chat.svg
    :target: https://gitter.im/aio-libs/aiobotocore
    :alt: Chat on Gitter
.. |pypi downloads badge| image:: https://img.shields.io/pypi/dm/aiobotocore.svg?label=PyPI%20downloads
    :target: https://pypi.org/project/aiobotocore/
    :alt: Downloads Last Month
.. |conda badge| image:: https://img.shields.io/conda/dn/conda-forge/aiobotocore.svg?label=Conda%20downloads
    :target: https://anaconda.org/conda-forge/aiobotocore
    :alt: Conda downloads
.. |stackoverflow badge| image:: https://img.shields.io/badge/stackoverflow-Ask%20questions-blue.svg
    :target: https://stackoverflow.com/questions/tagged/aiobotocore
    :alt: Stack Overflow

|ci badge| |pre-commit badge| |coverage badge| |docs badge| |pypi badge| |gitter badge| |pypi downloads badge| |conda badge| |stackoverflow badge|

Async client for amazon services using botocore_ and aiohttp_/asyncio_.

This library is a mostly full featured asynchronous version of botocore.


Install
-------
::

    $ pip install aiobotocore


Basic Example
-------------

.. code:: python

    import asyncio
    from aiobotocore.session import get_session

    AWS_ACCESS_KEY_ID = "xxx"
    AWS_SECRET_ACCESS_KEY = "xxx"


    async def go():
        bucket = 'dataintake'
        filename = 'dummy.bin'
        folder = 'aiobotocore'
        key = '{}/{}'.format(folder, filename)

        session = get_session()
        async with session.create_client('s3', region_name='us-west-2',
                                       aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
                                       aws_access_key_id=AWS_ACCESS_KEY_ID) as client:
            # upload object to amazon s3
            data = b'\x01'*1024
            resp = await client.put_object(Bucket=bucket,
                                                Key=key,
                                                Body=data)
            print(resp)

            # getting s3 object properties of file we just uploaded
            resp = await client.get_object_acl(Bucket=bucket, Key=key)
            print(resp)

            # get object from s3
            response = await client.get_object(Bucket=bucket, Key=key)
            # this will ensure the connection is correctly re-used/closed
            async with response['Body'] as stream:
                assert await stream.read() == data

            # list s3 objects using paginator
            paginator = client.get_paginator('list_objects_v2')
            async for result in paginator.paginate(Bucket=bucket, Prefix=folder):
                for c in result.get('Contents', []):
                    print(c)

            # delete object from s3
            resp = await client.delete_object(Bucket=bucket, Key=key)
            print(resp)

    loop = asyncio.get_event_loop()
    loop.run_until_complete(go())



Context Manager Examples
------------------------

.. code:: python

    from contextlib import AsyncExitStack

    from aiobotocore.session import AioSession


    # How to use in existing context manager
    class Manager:
        def __init__(self):
            self._exit_stack = AsyncExitStack()
            self._s3_client = None

        async def __aenter__(self):
            session = AioSession()
            self._s3_client = await self._exit_stack.enter_async_context(session.create_client('s3'))

        async def __aexit__(self, exc_type, exc_val, exc_tb):
            await self._exit_stack.__aexit__(exc_type, exc_val, exc_tb)

    # How to use with an external exit_stack
    async def create_s3_client(session: AioSession, exit_stack: AsyncExitStack):
        # Create client and add cleanup
        client = await exit_stack.enter_async_context(session.create_client('s3'))
        return client


    async def non_manager_example():
        session = AioSession()

        async with AsyncExitStack() as exit_stack:
            s3_client = await create_s3_client(session, exit_stack)

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `3.7.0` | 2026-05-09 | High | * replace per-PR ``CHANGES.rst`` / ``__init__.py`` ceremony with an AI-drafted   release flow: contributors no longer touch version or changelog files; a   workflow-triggered agent synthesizes merged PRs into a release PR at release   time (closes #1167) (#1592) * add ``AioSession.warm_up_loader_caches()`` and ``warm_up_loader_caches``   option in ``AioConfig`` to pre-populate botocore loader caches off the event   loop, avoiding blocking file I/O on first client/waiter/paginator use   (c |
| `3.6.0` | 2026-05-01 | High | ## What's Changed * Relax `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1578 * Relax `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1579  <details>   <summary><h3>Internal Changes</h3></summary>  * Bump actions/cache from 5.0.4 to 5.0.5 by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1575 * Bump packaging from 26.0 to 26.1 by @dependabot[bot] in https://github. |
| `3.5.0` | 2026-04-21 | Low | Imported from PyPI (3.5.0) |
| `3.4.0` | 2026-04-07 | Medium | ## What's Changed * Bump `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1534  <details>   <summary><h3>Internal Changes</h3></summary>  * Add Claude Code and Botocore Sync workflows by @thehesiod in https://github.com/aio-libs/aiobotocore/pull/1498 * Fix botocore sync summary display, add report visibility by @thehesiod in https://github.com/aio-libs/aiobotocore/pull/1499 * Fix botocore sync permissions, claude review, and security ha |
| `3.3.0` | 2026-03-18 | Low | ## What's Changed * Bump `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1492  <details>   <summary><h3>Internal Changes</h3></summary>  * Bump astral-sh/setup-uv from 7.3.0 to 7.3.1 by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1487 * Bump actions/upload-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1488 * Bump actions/download-artifact from 7.0.0 to 8.0.0 by @de |
| `3.2.1` | 2026-03-04 | Low | ## What's Changed * Relax `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1485  <details>   <summary><h3>Internal Changes</h3></summary>  * Bump joserfc from 1.6.1 to 1.6.3 in the uv group across 1 directory by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1484  </details>  **Full Changelog**: https://github.com/aio-libs/aiobotocore/compare/3.2.0...3.2.1 |
| `3.2.0` | 2026-02-24 | Low | ## What's Changed * Bump `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1480  <details>   <summary><h3>Internal Changes</h3></summary>  * Bump astral-sh/setup-uv from 7.2.0 to 7.3.0 by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1476 * Remove `stale` GitHub workflow by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1478 * Bump the uv group across 1 directory with 2 updates by @dependabot[bot] in htt |
| `3.1.3` | 2026-02-14 | Low | ## What's Changed * Relax `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1474  <details>   <summary><h3>Internal Changes</h3></summary>  * Update development dependencies by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1473  </details>  **Full Changelog**: https://github.com/aio-libs/aiobotocore/compare/3.1.2...3.1.3 |
| `3.1.2` | 2026-02-05 | Low | ## What's Changed * Relax `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1472  <details>   <summary><h3>Internal Changes</h3></summary>  * Bump actions/checkout from 6.0.1 to 6.0.2 by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1470 * Bump development dependencies by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1471  </details>  **Full Changelog**: https://github.com/aio-libs/aiobotocore/compar |
| `3.1.1` | 2026-01-20 | Low | ## What's Changed * Relax `botocore` dependency specification by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1466  <details>   <summary><h3>Internal Changes</h3></summary>  * Bump astral-sh/setup-uv from 7.1.6 to 7.2.0 by @dependabot[bot] in https://github.com/aio-libs/aiobotocore/pull/1467 * Pin remaining GitHub actions by @jakob-keller in https://github.com/aio-libs/aiobotocore/pull/1468 * Bump dev and docs dependencies by @jakob-keller in https://github.com/aio-libs/ |

## Dependency audit

- **Score**: 79/100
- **Total deps**: 9
- **Resolved**: 6
- **Unresolved**: 3
- **License conflicts**: 0
- **Warnings**: 7
- **Scanned**: 2026-05-18

## Citation

- HTML: https://www.freshcrate.ai/projects/aiobotocore
- Markdown: https://www.freshcrate.ai/projects/aiobotocore.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/aiobotocore/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
