rollapi 1.2.1 icon indicating copy to clipboard operation
rollapi: ^1.2.1 copied to clipboard

Dart library for Roll-API

Roll-API Dart #

Dart library for Roll-API shield

API available badge

This icon ↑ indicates if API is working right now

What the hell is Roll-API?? #

It's a super cool API that allows you to roll a real dice and get it's number! Check it out:

XKCD 221 - random number

How to use #

  1. Import:

    import 'package:rollapi/rollapi.dart' as roll;
  2. Simple way - use getRandomNumber():

    print("Rolling a dice...");
    roll.getSimpleResult().then((result) => print("Number: $result"));

    It returns pure Future<int>, and throws an exception if something failed

  3. More advance way: use makeRequest():

    It returns a Request object, which contains UUID and Stream of values:

    var request = await roll.makeRequest();
    request.stateStream.listen((event) {
     switch (event.key) {
       case roll.RequestState.queued:
         // .queued value is an ETA DateTime - which can be null
         if (event.value != null) {
           var sec = (event.value as DateTime).difference(;
           print('Time left: $sec seconds');
       case roll.RequestState.failed:
         print('Request failed :(((');
         // .failed value is an exception - you can throw it
         throw event.value;
       case roll.RequestState.finished:
         print('Finished!!! Number: ${event.value}');

If you want to use another instance, because you want to test your own or official is currently down, you can:

import 'package:rollapi/rollapi.dart' as roll;
roll.API_BASE_URL = ''; 


This package also offers really nice CLI, that can, for example, generate you a random password! You can either get it with dart pub global activate rollapi, or from GitHub releases:

Then, you can run:

$ rollapi roll
Rolling the dice...
$ rollapi pwd --numbers -l 6
Generating random password...
DONE! Your password: cwgl0r