Skip to content

Introduction

Waveform issues license keys when a customer buys your software, then lets your software ask, at any time and from anywhere, whether that customer’s license is valid. It licenses anything you can write code for: web apps and SaaS, online games, APIs, desktop apps, and audio plugins.

The service is a plain REST API. Everything on this site works from any language with an HTTP client. The SDKs below are conveniences, never a requirement.

Online: web apps, SaaS, APIs

Your backend asks the API “is this license valid right now?” on every use. Revocation is instant, and you can enforce concurrent-session limits and usage quotas.

Online integration

Offline: desktop apps and plugins

The app activates once and receives a signed license file, then verifies it locally on every launch with no network call. Renewal and revocation happen quietly in the background.

Offline integration

Building an audio plugin with JUCE? Skip the generic offline guide and start with the JUCE activation kit, which ships the activation UI, the offline verifier, and the renewal logic ready-made.

Does your product need to run without an internet connection?
├── Yes (plugin, DAW, desktop tool) ........ Offline integration
└── No (web app, SaaS, API, online game) .. Online integration

A desktop app with online features can use both: gate launch with offline verification, and call the online endpoints for the features that need the network.

Your software Use
Audio plugin or JUCE C++ app (VST3, AU, AAX, standalone) The JUCE activation kit
Web app, SaaS, Node, Electron, edge The TypeScript SDK
.NET, Swift, Kotlin, Python, Go, Rust, PHP, anything else The REST API directly

The token format is open and documented, so an independent verifier in any language is a short piece of code. See Token format.

A license is created by the merchant’s store when a customer buys: automatically through the Waveform app for Shopify, through the Waveform plugin for WooCommerce, or by import. What matters to you as the developer is that the integration is identical whichever store sold the license. Your software only ever sees a license key and the API.