nrouter 2.1.1 copy "nrouter: ^2.1.1" to clipboard
nrouter: ^2.1.1 copied to clipboard

nRouter SDK — one API key for models across six provider clouds. Works in Flutter and plain Dart.

example/nrouter_example.dart

import 'package:nrouter/nrouter.dart';

void main() async {
  // 1. Initialize the client with an nRouter API key.
  // In a Flutter mobile/web app, pass a short-lived key minted on your backend.
  final client = NRouter(apiKey: 'sk-nrouter-example-key');

  try {
    // 2. Chat Completion
    final response = await client.chatCompletions({
      'model': 'claude-sonnet-4-5-20250929',
      'messages': [
        {'role': 'user', 'content': 'Hello, nRouter!'},
      ],
    });

    print('Response: ${response.body['choices']}');

    // 3. Metadata and Cost tracking (from x-nr-* headers)
    final meta = response.meta;
    print('Request ID: ${meta.requestId}');
    print('Model: ${meta.model}');
    if (meta.isPriced) {
      print('Cost: \$${meta.cost}');
    } else {
      print('Cost: unpriced (${meta.costStatus})');
    }

    // 4. Streaming Text Generation
    print('\nStreaming messages:');
    final stream = client.messagesStream({
      'model': 'claude-haiku-4-5-20251001',
      'max_tokens': 128,
      'messages': [
        {'role': 'user', 'content': 'Count from 1 to 5.'},
      ],
    });

    await for (final chunk in stream) {
      print(chunk.delta);
    }
  } on NRouterGuardrailBlockedError catch (e) {
    print('Guardrail blocked: ${e.message}');
  } on NRouterCreditError catch (e) {
    print('Insufficient credits: ${e.message}');
  } on NRouterRateLimitError catch (e) {
    print('Rate limit exceeded: ${e.message} (source: ${e.body?.limitSource})');
  } on NRouterError catch (e) {
    print('nRouter error: ${e.message}');
  } finally {
    // 5. Close client resources when finished
    client.close();
  }
}
0
likes
150
points
95
downloads

Documentation

API reference

Publisher

verified publishernrouter.ai

Weekly Downloads

nRouter SDK — one API key for models across six provider clouds. Works in Flutter and plain Dart.

License

MIT (license)

Dependencies

http

More

Packages that depend on nrouter