Official mansaapi-flutter SDK for Mansa API — African market, macro, identity & location data
# mansaapi
Official Dart and Flutter SDK for the Mansa API —
African data infrastructure for developers and AI agents. Live stock market
data from 16+ African exchanges, macro indicators with provenance, company
fundamentals, and identity & location reference data. Built in Lagos by
Mansa Labs.
Pure Dart — works in Flutter (Android, iOS, web, desktop) and server-side
Dart. Single runtime dependency: `package:http`.
## Install
```sh
dart pub add mansaapi
# or, in a Flutter project:
flutter pub add mansaapi
```
## Get an API key
Every request needs a Bearer token. Get a **free key instantly** (100
requests/day, no credit card) at
mansaapi.com.
## Quickstart (Flutter)
```dart
import 'package:flutter/material.dart';
import 'package:mansaapi/mansaapi.dart';
final mansa = MansaAPI(apiKey: 'mansa_live_sk_...');
class MarketDashboard extends StatefulWidget {
const MarketDashboard({super.key});
@override
State createState() => _MarketDashboardState();
}
class _MarketDashboardState extends State {
late final Future gainers, bool ngxOpen, List rates})>
_data = _load();
Future gainers, bool ngxOpen, List rates})>
_load() async {
// Run the three calls in parallel.
final results = await Future.wait([
mansa.markets.getPanAfricanMovers(limit: 10), // top movers, all Africa
mansa.markets.isOpen('NGX'), // is NGX trading now?
mansa.macro.getPolicyRates(), // central bank rates
]);
final movers = results[0] as Map ;
final status = results[1] as Map ;
return (
gainers: movers['gainers'] as List ,
ngxOpen: status['is_open'] == true,
rates: results[2] as List ,
);
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: _data,
builder: (context, snapshot) {
if (snapshot.hasError) {
final error = snapshot.error;
final message = error is MansaAPIException
? '${error.message}${error.hint != null ? '\n${error.hint}' : ''}'
: 'Something went wrong';
return Center(child: Text(message));
}
if (!snapshot …