Choose an SDK
TypeScript
The complete client: REST, GraphQL, the public realtime feed, ETag caching, retries, and playback ingest.
Framework bindings
React hooks, Vue composables, Svelte stores, and Next.js server helpers.
Other languages
Starter REST clients for Python, Go, .NET, Ruby, PHP, Kotlin, and Swift.
Feature support
Only the TypeScript client has the full feature set. The framework bindings take a TypeScript client, so you keep its full feature set. The other languages are minimal REST starters.Credentials
Create keys in the dashboard — see Integrations and Authentication.
Pass the raw
rtm_… secret. The SDK adds the Bearer prefix. Keep both keys on your server; browser code should talk to your own backend, never to RadioTools with a station key. The public realtime feed is the exception: it needs no key, so a browser can subscribe to it directly.
The TypeScript, Next.js, Python, Go, .NET, Ruby, and PHP clients have a helper that reads the same environment variables. Kotlin and Swift take the values as arguments.
Versioning
The npm packages (@rivi-software/radiotools-sdk, the React, Vue, Svelte, and Next.js bindings, and @rivi-software/radiotools-contract) share one version number and are released together. The current release is 0.3.0. Use 0.3.0 or later for the public realtime feed, content by slug, sorting and field filters, the draft preview handoff, and the card and square media variants.
The other-language starters are not part of this release group; see Other languages.
The listener contract is versioned separately through contractVersion — see Errors and versioning.
Alternatives
- Download the OpenAPI 3.1 document to generate a client in any language or to import into API tools.
- Use GraphQL directly with any GraphQL client.