Sendou.ink Python SDK
Async Python SDK for the sendou.ink public API.
Current version: 1.0.1
Installation
pip install sendou-ink-sdk
Quick start
import asyncio
from sendou_sdk import SendouClient
async def main() -> None:
async with SendouClient(token="YOUR_TOKEN") as client:
user = await client.users.get("sendou")
print(user.name, user.country)
asyncio.run(main())
Data types
The SDK returns typed Pydantic models. You can add type hints directly in your scripts:
from sendou_sdk import GetUserResponse, GetUserIdsResponse, GetTeamResponse
user: GetUserResponse = await client.users.get("sendou")
user_ids: GetUserIdsResponse = await client.users.get_ids("sendou")
team: GetTeamResponse = await client.teams.get(4)
Most commonly used response and request models are exported from sendou_sdk.
Playground
Use playground.py to quickly inspect live API responses with your own token and user identifier.
Required environment variables:
SENDOU_TOKEN(API token from https://sendou.ink/api)SENDOU_USER(user ID, Discord ID, or custom URL)
Run the playground on Windows (PowerShell):
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
$env:SENDOU_TOKEN="YOUR_TOKEN"
$env:SENDOU_USER="sendou"
python playground.py
Run the playground on macOS/Linux (bash/zsh):
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export SENDOU_TOKEN="YOUR_TOKEN"
export SENDOU_USER="sendou"
python playground.py
See docs/playground.md for full platform-specific instructions.
Local testing
python -m venv .venv
.venv\\Scripts\\activate
pip install -r requirements.txt
Run a quick test against the live API:
import asyncio
from sendou_sdk import SendouClient
async def main() -> None:
async with SendouClient(token="YOUR_TOKEN") as client:
user = await client.users.get("sendou")
print(user.name, user.country)
asyncio.run(main())
Build and preview docs locally:
mkdocs serve
Build wheel
Create a distributable wheel from source:
python -m pip install -e ".[build]"
python -m build --wheel
python -m twine check dist/*
Releases
Releases are automated with GitHub Actions:
deploy-docs.ymldeploys documentation to GitHub Pages.release-tag-publish.ymldeploys docs for the tag, validates the tag version againstpyproject.toml, builds distributions, and publishes to PyPI.
Create a release tag (example):
git tag [VERSION] # e.g. git tag v1.0.1
git push origin [VERSION] # e.g. git push origin v1.0.1
For tagged releases, keep CHANGELOG.md updated before pushing the tag.
Features
- Async-first client built on httpx
- Typed response models powered by Pydantic
- Token-based authentication handling
- Explicit API error types
Documentation
Full documentation lives in docs/ and can be published with MkDocs.
Published docs: https://jasonjimnz.github.io/sendou_ink_sdk/
docs/usage.mdfor typed endpoint examplesdocs/playground.mdfor local playground instructionsdocs/configuration.mdfor runtime configurationdocs/reference.mdfor method and model referencedocs/releasing.mdfor release automation and tag flowCHANGELOG.mdfor release notes
Release files for sendou-ink-sdk 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sendou_ink_sdk-1.0.1.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sendou_ink_sdk-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.9 kB
Release files / sendou_ink_sdk-1.0.1.tar.gz
| Download URL | sendou_ink_sdk-1.0.1.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
459d67fa9282c025effcf8d533f8bac2454790aed6ef2ca727c9d3a2482f0c30
|
|
BLAKE2b-256 checksum How to use checksums |
4f60d5ed38e2989add107960d091812c7649c3c26d32ac1d5aed9cb4cfe6d614
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logRelease files / sendou_ink_sdk-1.0.1-py3-none-any.whl
| Download URL | sendou_ink_sdk-1.0.1-py3-none-any.whl |
|---|---|
| Size | 15.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49506cfdc08a248fcf436081b4720e9582ccf849b37b884852bbdbbf5d4097a2
|
|
BLAKE2b-256 checksum How to use checksums |
6df2f01c3e4c863bc408a12fcf69631100185622df70d5989b9a5891bd7ebaee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency log