Official Python SDK for AIgateway — async jobs, sub-accounts, evals, replays, webhook verification. Install as aigateway-py; import as aigateway.
Project description
aigateway-py (Python)
Official Python SDK for AIgateway — one OpenAI-compatible API for every frontier and open-weight model, every modality.
Distribution name on PyPI is
aigateway-py(the bareaigatewayname was unavailable). The import path is stillaigateway.
For chat, embeddings, images, STT, TTS, moderation — just use the openai package with base_url='https://api.aigateway.sh/v1'. AIgateway is drop-in.
This SDK covers the aggregator-native surface OpenAI doesn't model:
- Async jobs — text-to-video, music, 3D with a typed
jobs.wait(id)helper - Sub-accounts — one scoped key per end customer with spend caps
- Evals — pick the winning model from a candidate set; alias as
eval:<run_id> - Replays — re-run any past request on a new model and diff the output
- Signed file URLs — share job results without handing out the gateway key
- Webhook signature verification — HMAC-SHA256 with
verify_webhook()
Install
pip install aigateway-py
You still import aigateway in code — the PyPI distribution name and the import name are intentionally different.
Requires Python 3.9+.
Quickstart
import os
from aigateway import AIgateway
client = AIgateway(api_key=os.environ["AIGATEWAY_API_KEY"])
# 1. Submit a video job with a webhook.
job = client.jobs.create_video(
prompt="a sunset over mountains, cinematic",
model="runwayml/gen-4",
duration=5,
webhook_url="https://yourapp.com/hooks/aigateway",
)
# 2. Or poll until it's done:
done = client.jobs.wait(job.id, timeout_seconds=600)
print(done.result_url)
# 3. Mint a shareable signed URL:
signed = client.files.signed_url(job.id, "video.mp4", expires_in=3600)
print(signed["url"])
Async
import asyncio
from aigateway import AsyncAIgateway
async def main():
async with AsyncAIgateway(api_key="sk-aig-...") as client:
job = await client.jobs.create_video(prompt="a cat")
result = await client.jobs.wait(job.id)
print(result.result_url)
asyncio.run(main())
Webhook verification
from aigateway import verify_webhook
from fastapi import FastAPI, Request, HTTPException
app = FastAPI()
SECRET = os.environ["AIGATEWAY_WEBHOOK_SECRET"]
@app.post("/hooks/aigateway")
async def hook(request: Request):
raw = await request.body()
sig = request.headers.get("x-gateway-signature", "")
if not verify_webhook(SECRET, raw, sig):
raise HTTPException(status_code=401)
# ... handle the payload
Fetch your webhook secret with client.webhook_secret.get() or rotate it with client.webhook_secret.rotate().
License
MIT © AIgateway
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aigateway_py-0.1.0.tar.gz.
File metadata
- Download URL: aigateway_py-0.1.0.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bee64b079e779ef1ac84bdb8c711059d61ea34c10b06c1037ec0841c93e2634
|
|
| MD5 |
c516530891a9510dffb0f297647cf2ea
|
|
| BLAKE2b-256 |
db2a860d035516493ca483279462a2ff2c72e3a5e73008f7128153e8f77f2cf7
|
File details
Details for the file aigateway_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aigateway_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b88004c46a4f267862dc82eb35cd67799db08947fdcf65fa45b6ba83775e47ab
|
|
| MD5 |
5268c1caed53d9d47579ee304c207e01
|
|
| BLAKE2b-256 |
4f971d2aad1b0f19c5dbce568d2a5092c99b17e6b3e8a06b62cb09ad691010f3
|