Developers
FSI Customer API
Entitlement-gated access to Bantu Full Syllable Inventories. Your token decides scope: Evaluation tokens reach the 2-language evaluation set (Bemba + Nyanja) with capped sample audio; Founding Partner tokens reach all Released FSIs with full consent-gated audio and bulk selection.
Public self-test — no key, no login
Any agent can run the two-minute self-test over plain HTTP or MCP with no token. Public callers get rates + counts; the inventory is never returned (so nothing licensed leaks). An entitled Bearer adds the full matched / missing / fabricated breakdown.
Authentication
All data endpoints require a Bearer token. Evaluation keys are issued to allow-listed AI labs via an emailed activation link; Founding Partner keys are issued on license.
Scopes
- evaluation —
allowed_isos = ["bem", "nya"], audio = sample (capped), no bulk, 30-day expiry. - founding_partner — all Released FSIs, full audio, bulk selection, no expiry.
A request can never widen access beyond the token's entitlement; the licensing gate (only Released for Licensing languages) is applied on every call.
Endpoints
Selection grammar (/fsi)
iso=bem,nya,toi— explicit listzone=M— Guthrie zone lettercountry=Zambia— by countryscope=all— every Released FSI the token may accessview=inventory|equation|both·limit/offsetfor paging
The audio token contract
Audio is never returned as a storage path. /fsi/{iso}/audio
returns per-syllable opaque signed tokens; play one by GETting
/audio/clip/{token}. Tokens are time-limited and tamper-evident;
a bad signature or a raw path returns 404. The following never
appear in any response: gcs_path, recorded_by,
user_id, filename_stem, sequence numbers. See
Security and
Provenance & consent.
Rate limits & errors
- Per-token daily quota (evaluation default 500/day; Founding Partner uncapped).
401missing/invalid token ·403language not in entitlement ·404not found ·429quota exceeded.- Every authenticated call is logged for audit + abuse detection.
Agents (MCP)
The same product is available to agents over a hosted Streamable-HTTP MCP at
POST /mcp. Register it exactly like any MCP endpoint:
Public tools (no token needed):
fsi_challenge(language) and
fsi_self_test(language, your_syllables, model_name?) — the same
no-leak self-test as above.
Token-scoped tools (Evaluation → Bemba + Nyanja; Pilot → agreed set;
Founding Partner → all 459): whoami, list_languages,
search_languages, get_fsi, get_voices, and
(Pilot+) get_revision_history, get_provenance,
get_benchmark_kit.