Abyssale Python SDK
Official Python client for the Abyssale API — generate images, videos, HTML5 banners and print-ready PDFs from your designs.
📖 Full reference: developers.abyssale.com/sdks/python — every method, configuration, error handling, retry behaviour and the polling helpers.
Install
pip install abyssale
Requires Python 3.10+. This release models API version v2026-10-01 — see
CHANGELOG.md for the
SDK-to-API version pairing, and abyssale.__api_version__ to read it at runtime.
Quick start
from abyssale import Abyssale
with Abyssale() as client: # reads ABYSSALE_API_KEY
design = client.get_design("64238d01-d402-474b-8c2d-fbc957e9d290")
banner = client.generate_image(design.id, {
"elements": {"text_title": {"payload": "Summer sale — 40% off"}},
"template_format_name": "facebook-feed",
})
print(banner.file.cdn_url)
Async is the same surface:
import asyncio
from abyssale import AsyncAbyssale
async def main():
async with AsyncAbyssale() as client:
accepted = await client.generate_multi_format_media(design_id, {
"elements": {"text_title": {"payload": "Summer sale — 40% off"}},
"template_format_names": ["facebook-feed", "instagram-post"],
})
result = await client.wait_for_generation_request(accepted.generation_request_id)
for banner in result.banners:
print(banner.file.cdn_url)
asyncio.run(main())
Methods return the result and raise on failure. Branch on the API's machine-readable id, never
on the message:
from abyssale import AbyssaleAPIError
try:
client.generate_image(design_id, {...})
except AbyssaleAPIError as err:
print(err.status, err.id, err.message, err.errors)
What you get
- 22 methods, sync and async, one per API operation, named after its
operationIdsnake_cased, plus twowait_for_*polling helpers — every method - Typed responses, permissive request bodies — responses are pydantic models that never fail a
200, request bodies pass through untouched — request bodies and responses - A typed exception hierarchy carrying the API's
id,errorsandretry_after— errors - Narrow retries and a per-attempt timeout, configurable per client or by environment
(
ABYSSALE_API_KEY,ABYSSALE_TIMEOUT_MS,ABYSSALE_MAX_RETRIES,ABYSSALE_MAX_RETRY_WAIT_MS) — configuration · what is retried, and what is not - Webhook signature verification in
abyssale.webhooks, which imports only the standard library — no client and no API key needed in a receiver process — signature verification
Examples
Runnable scripts are in examples/,
including a complete webhook receiver. Each one names its own command:
ABYSSALE_API_KEY=your-key python examples/generate_image.py
Contributing
See AGENTS.md for the architecture, how to regenerate the models from the OpenAPI spec, and how to add an endpoint.
Links
- Abyssale — the product this SDK talks to
- Documentation
- API reference
- OpenAPI spec — the contract this SDK is generated from
- Source
Metadata
Release files for abyssale 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| abyssale-1.4.0.tar.gz | 59.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| abyssale-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 124.6 kB
Release files / abyssale-1.4.0.tar.gz
| Download URL | abyssale-1.4.0.tar.gz |
|---|---|
| Size | 59.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5fa920ee7fe400ef59be9768306d457bc14b9979aed85ad0431a036a248b25c7
|
|
BLAKE2b-256 checksum How to use checksums |
fe98983bbaaa1b1e952878fd8f46b4b509e2699c9f49d0649616c9519860ff5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.7
|
Release files / abyssale-1.4.0-py3-none-any.whl
| Download URL | abyssale-1.4.0-py3-none-any.whl |
|---|---|
| Size | 64.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a38f70e6cac680c0f5d6f070c4c4fe4594e260a1f9f567d5097051bd1aabef94
|
|
BLAKE2b-256 checksum How to use checksums |
36eb6d92b98d8a4a9a52a6f720993e8e096550efdf0108a8bdf565cf29d0d06c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.7
|