Skip to main content

WAVE SDK for Python

Media infrastructure for the agentic internet. Official Python SDK for WAVE, by WAVE Online, LLC.

Installation

pip install wave-sdk

Quick start

from wave_sdk import Wave

client = Wave(api_key="your-api-key", organization_id="org_123")

# Search your organization's indexed media
results = client.search.search(query="product launch")

# List your org's published pricing tiers (requires the pricing:read scope)
manifests = client.pricing.list_manifests()

# Transcribe a recording and auto-generate captions for it
transcription = client.transcribe.create(source_url="https://example.com/clip.mp4")
captions = client.captions.generate(media_id=transcription.id, media_type="video")

# Propose a plan across WAVE products for a plain-English intent (requires
# composer:write). A proposal never executes anything.
proposal = client.compose.compose("live captions for tomorrow's webinar")
print(proposal.stages, proposal.price_rows, proposal.executes)  # executes is always False

All 43 APIs

P1 - Core

API Description
wave.pipeline Live streaming engine
wave.studio Multi-camera production

P2 - Enterprise

API Description
wave.fleet Device fleet management
wave.ghost AI auto-directing
wave.mesh Multi-region failover
wave.edge CDN and edge workers
wave.pulse Analytics and BI
wave.prism Virtual Device Bridge
wave.zoom Zoom integration

P3 - Content & Commerce

API Description
wave.clips Video clips
wave.editor Video editor
wave.voice Voice synthesis
wave.phone Phone calls
wave.collab Collaboration
wave.captions Auto-captions
wave.chapters Video chapters
wave.studio_ai AI assistant
wave.transcribe Transcription
wave.sentiment Sentiment analysis
wave.search Content search
wave.scene Scene detection
wave.vault Recording storage
wave.marketplace Marketplace
wave.connect Integrations
wave.distribution Social simulcast
wave.desktop Desktop Node
wave.signage Digital signage
wave.qr QR codes
wave.audience Polls/Q&A
wave.creator Monetization

P4 - Specialized

API Description
wave.podcast Podcast production
wave.slides Slides-to-video
wave.usb USB relay

Cross-cutting

API Description
wave.notifications User notifications, preferences, delivery
wave.drm Digital rights management
wave.realtime Live control and event plane (WebSocket)

Agent-native and comms productization (2.1.0)

API Description
wave.transcripts The voice-agent transcript (list + read)
wave.mail Send, reply, search, transcript email, and SMS
wave.meter Read-only usage ledger and rollup (meter:read)
wave.pricing The seller tier-manifest registry (pricing:read/:write)
wave.perception Agentic live-media subscribe() control plane
wave.inference One completion endpoint through the measured funnel

Composer (PR4)

API Description
wave.compose POST /v1/compose: propose a plan across products (composer:write/:read)

wave.compose.compose(intent, ...) never executes anything — the response's executes field is a literal False. wave.compose.save_flow(proposal) saves the proposal as a flow with createdBy.kind: "wave-composer"; until a composer:write console token exists, it never calls the console silently — it prints (and returns) the exact curl a signed-in console session can run:

proposal = client.compose.compose("live captions for tomorrow's webinar", budget_usd=5)
curl_cmd = client.compose.save_flow(proposal)  # prints the curl; does not save it itself

Error handling

from wave_sdk import WaveError, RateLimitError

try:
    client.clips.get("invalid-id")
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after}s")
except WaveError as e:
    print(f"{e.code}: {e.message} ({e.status_code})")

Requirements

  • Python 3.9+
  • httpx
  • pydantic

Migrating from 2.0.0

If you installed wave-av-sdk or wave-sdk at 2.0.0, two names changed:

  • Install wave-sdk (not wave-av-sdk).
  • Import wave_sdk (not wave).
-from wave import Wave
+from wave_sdk import Wave

Nothing below the top-level name changed, so replacing the import line is the whole migration. The old wave package collided with the Python standard library's own wave module and was never importable from an installed 2.0.0 — full detail, the uninstall step, and a bulk find-and-replace are in MIGRATING.md.

Note that the wave.<api> names in the tables above are attributes of a client instance, not module paths: name your client whatever you like (client = Wave(...) in the quick start above), and client.clips is the row the table writes as wave.clips.

License

Apache-2.0 - WAVE Online, LLC. See LICENSE and NOTICE; the WAVE marks are not licensed under the Apache grant.

Metadata

Release files for wave-sdk 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wave-sdk 2.2.0
File Size Uploaded
wave_sdk-2.2.0.tar.gz 64.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wave-sdk 2.2.0
File Interpreter ABI Platform
wave_sdk-2.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 131.6 kB

Release files / wave_sdk-2.2.0.tar.gz

Download URL wave_sdk-2.2.0.tar.gz
Size 64.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d2d4b3a5af1b31e159dcaf912f3c56a8137f28b7ac49e067c87ccd1dba5cf644
BLAKE2b-256 checksum
How to use checksums
a19e0389cdd51f3a46d978655a148fffd0619270a41ea28ae2f10b52fc18df34
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 Sep 7, 2026.

Transparency log

Release files / wave_sdk-2.2.0-py3-none-any.whl

Download URL wave_sdk-2.2.0-py3-none-any.whl
Size 67.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c11bd3db94a1b7438ef4861452c11c890648434a9bbe1c95573069b17921fec9
BLAKE2b-256 checksum
How to use checksums
011287d0f55defb74cf3d17df8e94535207e12d5f8d50c070eff76e17d6d16b8
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 Sep 7, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.2.0 This release

2 release files

2.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page