# Imagine clients

The Imagine SDK exposes two clients, each with a different programming paradigm: synchronous and asynchronous.

{class}`~imagine.ImagineClient` is the synchronous Imagine client. If you don't need asynchronous
programming on your Python code, or simply you are not familiar with asynchronous
programming, this is the client you want to use.

Otherwise, if you are leveraging {obj}`asyncio` on your codebase, {class}`~imagine.ImagineAsyncClient` might be a better choice.

## Synchronous client

```{eval-rst}
.. autoclass:: imagine.ImagineClient
    :members:
```
## Asynchronous client

```{eval-rst}
.. autoclass:: imagine.ImagineAsyncClient
    :members:
```
