ESO Logs Python

A comprehensive Python client for the ESO Logs API v2
- Type Safety: Full type hints with Pydantic models
- Async First: Native async/await support with HTTP and WebSocket
- GraphQL Integration: Code generation with `ariadne-codegen` + Claude
- Security: OAuth2 authentication with parameter validation
- Testing: 428 tests with comprehensive coverage
Quickstart¶
import asyncio
from esologs.client import Client
from esologs.auth import get_access_token
async def main():
token = get_access_token()
async with Client(
url="https://www.esologs.com/api/v2/client",
headers={"Authorization": f"Bearer {token}"}
) as client:
# Get character information
character = await client.get_character_by_id(id=12345)
print(f"Character: {character.character_data.character.name}")
# Search for reports
reports = await client.search_reports(
guild_id=123,
zone_id=456,
limit=10
)
asyncio.run(main())
Architecture¶
graph TB
A[User Application] --> B[ESO Logs Python Client]
B --> C[Authentication Layer]
B --> D[GraphQL Client]
B --> E[Data Models]
C --> F[OAuth2 Provider]
D --> G[ESO Logs API v2]
E --> H[Pydantic Validation]
subgraph "Generated Code"
D
E
end
subgraph "ESO Logs Infrastructure"
F
G
endBeta Status
This library is now in beta! With 100% API coverage and comprehensive testing, we're focusing on stability and polish before the 1.0 release. The API is considered stable, though minor changes may still occur. See our changelog for the latest updates.