volorio_server 0.2.0 copy "volorio_server: ^0.2.0" to clipboard
volorio_server: ^0.2.0 copied to clipboard

Backend-only Volorio REST client for creating RTC sessions and sending heartbeats.

volorio_server #

Backend-only Dart REST client for Volorio session creation, heartbeat, wallet reads, and server-side realtime product orchestration.

Use this package in your own backend. Do not ship it inside a customer Flutter mobile app with a real Volorio API key.

Keywords #

Volorio server SDK, Dart backend SDK, Flutter RTC backend, WebRTC token server, voice room backend, API key, project ID, client ID, wallet billing.

Install #

dependencies:
  volorio_server: ^0.2.0

Required identifiers #

Volorio uses three different identifiers:

Identifier Required where Secret? Purpose
clientId Session creation body No Public application/client identifier for the API key owner
projectId Session creation body No Billing, entitlement, wallet, room namespace
apiKey Backend Authorization header Yes Server credential used to create sessions

Flutter apps may know clientId and projectId, but must not know apiKey.

Create an RTC voice session #

import 'dart:io';

import 'package:volorio_core/volorio_core.dart';
import 'package:volorio_server/volorio_server.dart';

final volorio = VolorioServerClient(
  apiBaseUrl: 'https://api.volor.io',
  apiKey: Platform.environment['VOLORIO_API_KEY']!,
);

final session = await volorio.createRoomSession(
  const CreateVolorioRoomSessionInput(
    clientId: 'app_...',
    projectId: 'proj_...',
    roomId: 'audio-party-123',
    identity: 'user_123',
    quality: VolorioMediaQuality.voice,
    products: [
      VolorioProductId.rtcVoice,
      VolorioProductId.signaling,
      VolorioProductId.chatMau,
    ],
  ),
);

Return the session JSON to your Flutter app. It contains a short-lived media token and heartbeat URL. It does not expose the Volorio API key.

Heartbeat and prepaid cutoff #

final heartbeat = await volorio.heartbeat(session.sessionId);

if (heartbeat.status == 'ended') {
  // Stop the participant locally.
}

Volorio captures participant-minute usage through heartbeat. If the account has no free minutes and no wallet balance, the API returns 402 and the client must disconnect.

Security checklist #

  • Store apiKey in your backend secret manager or environment.
  • Do not embed apiKey in Flutter, iOS, Android, web, or React Native apps.
  • Treat clientId and projectId as public routing identifiers.
  • Create separate API keys per environment and per product entitlement.
0
likes
0
points
93
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

Backend-only Volorio REST client for creating RTC sessions and sending heartbeats.

Homepage
Repository (GitHub)
View/report issues

Topics

#volorio #server #rtc #api #billing

License

unknown (license)

Dependencies

http, volorio_core

More

Packages that depend on volorio_server