Metadata-Version: 2.4
Name: wbapi-async
Version: 0.7.7
Summary: Fast, lightweight async client for the Wildberries Seller API
Project-URL: Documentation, https://serdukow.github.io/wbapi-async/
Project-URL: Repository, https://github.com/serdukow/wbapi-async
Project-URL: Changelog, https://github.com/serdukow/wbapi-async/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/serdukow/wbapi-async/issues
Author-email: Andrei Serdiukov <asyncdf@gmail.com>
Maintainer-email: Andrei Serdiukov <asyncdf@gmail.com>
License: MIT
License-File: LICENSE
Keywords: api,async,client,wb,wildberries
Classifier: Development Status :: 4 - Beta
Classifier: Framework :: AsyncIO
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: <3.14,>=3.11
Requires-Dist: aiolimiter<2.0.0,>=1.2.1
Requires-Dist: httpx<0.29.0,>=0.28.1
Provides-Extra: dev
Requires-Dist: pre-commit<5.0.0,>=4.3.0; extra == 'dev'
Requires-Dist: ruff<0.15.0,>=0.14.1; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.6.0; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.29.0; extra == 'docs'
Provides-Extra: lint
Requires-Dist: pre-commit<5.0.0,>=4.3.0; extra == 'lint'
Requires-Dist: ruff<0.15.0,>=0.14.1; extra == 'lint'
Provides-Extra: test
Requires-Dist: pytest-asyncio<2.0.0,>=1.2.0; extra == 'test'
Requires-Dist: pytest-httpx<0.37.0,>=0.35.0; extra == 'test'
Requires-Dist: pytest<9.0.0,>=8.4.2; extra == 'test'
Requires-Dist: python-dotenv<2.0.0,>=1.2.1; extra == 'test'
Description-Content-Type: text/markdown

![Logo](https://dev.wildberries.ru/images/open-graph.png)

<div align="center">

#### Fast, lightweight async client for the Wildberries Seller API

[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
[![PyPI version](https://img.shields.io/pypi/v/wbapi-async.svg)](https://pypi.org/project/wild-api/)
[![Downloads](https://img.shields.io/pypi/dm/wbapi-async.svg)](https://pypi.python.org/pypi/wild-api)
[![Docs](https://img.shields.io/badge/docs-serdukow.github.io-blue.svg)](https://serdukow.github.io/wbapi-async/)
[![Python](https://img.shields.io/pypi/pyversions/wbapi-async.svg)](https://pypi.org/project/wbapi-async/)

</div>

## Features

- **Zero boilerplate** — responses are plain attribute-accessible dicts
- **Auto-pagination** — `get_all()` fetches all pages. Auto-detects all known strategies; you can easily add your own via a custom paginator — [see docs](https://github.com/serdukow/wbapi-async/blob/dev/docs/advanced/pagination.md)
- **Rate limiting** — per-endpoint limits powered by `aiolimiter`
- **Auto-retry** — automatic retry
- **Always up to date** — path registry is updated every monday
- **Fully async** — built on `httpx` + `asyncio`

## Install

```bash
pip install wbapi-async
```

## Quick start

```python
import asyncio
from wbapi import WbAPI

async def main():
    async with WbAPI(token="YOUR_TOKEN") as api:
        body = {
            "settings": {
                "sort": {"ascending": True},
                "cursor": {"limit": 100},
                "filter": {"withPhoto": -1},
            }
        }

        cards = await api.get_all("/content/v2/get/cards/list", body=body)
        print(f"cards: {cards!r}")

asyncio.run(main())
```
