README.md

September 19, 2025 · View on GitHub

AioPokéApi

An Asynchronous API wrapper for the PokéApi written in Python.

Report issue · Request feature · Fork project

:old_key: Key Features

  • Use of modern Python keywords: async and await.
  • Every object is fully type hinted.
  • Objects get cached, this increases speed and avoids unnecessary API requests.

:earth_africa: Documentation

All endpoints of the PokéApi are accesible through methods of the AiopokeClient, these methods are listed in aiopoke_client.py and should be fairly straightforward to use.

:comet: Installation

pip install aiopokeapi
:gear: Didn't work?

Depending on your Python installation, you might need to use one of the following:

  • Python is not in PATH

    path/to/python.exe -m pip install aiopokeapi
    
  • Python is in PATH but pip is not

    python -m pip install aiopokeapi
    
  • Unix systems can use pip3/python3 commands

    pip3 install aiopokeapi
    
    python3 -m pip install aiopokeapi
    
  • Using multiple Python versions

    py -m pip install aiopokeapi
    

:rocket: Getting started

Aiopoke's goal is to be simple and easy to use:

import asyncio
import aiopoke

async def main():
   client = aiopoke.AiopokeClient()

   ability = await client.get_ability(1)
   generation = await ability.generation.fetch()

   await client.close()

asyncio.run(main())

Or even better, using a context manager:

# in main()
async with aiopoke.AiopokeClient() as client:
   ability = await client.get_ability(1)
   generation = await ability.generation.fetch()

If you are hosting the pokeapi locally and still want to use aiopokeapi, you may pass a base url into the keyword arguments of AiopokeClient as follows:

aiopoke.AiopokeClient(base_url="https://localhost:8080")