NGAIGE developers

A shop owner says what they want.
A compliant campaign goes out.

NGAIGE is mobile engagement for small businesses — consent, campaigns, delivery and the receipts that prove it. This is the door your application knocks on.

Eleven routes carry a business from “here we are” to “the campaign went out, here’s what it cost”. There is nothing else to learn.

What the platform actually does

Consent is the product

People opt in, and the proof travels with them. Every import carries exactly one carrier of consent — an attestation or a saved evidence record, never both, never neither. STOP is permanent and beats everything, everywhere.

A human always says go

A campaign moves draft → plan → submit → approve → send, and the approval names a person. That name is written into the record. Automation can draft and dispatch; it can never approve. The gate is the point.

Every number is evidence

Delivery, spend and stop counts all fold from the same events, hash-chained and verifiable. What your dashboard shows is what an auditor would find.

Your first campaign, in five minutes

You need one thing: an API key from your NGAIGE operator. It looks like nk_<id>_<secret> and it decides which business you are — there is no tenant to pass anywhere.

  1. Register the business. A name, and the sender ID that shows on the handset.
  2. Bring your consented list. A CSV of msisdn,consent,consented_at, plus one carrier of proof.
  3. Draft the message, then ask for a plan — who it reaches and what it should cost.
  4. Submit, then have a person approve it by name.
  5. Dispatch. Stopped numbers are skipped and named back to you.

Copy-paste versions in Go and TypeScript below — both are exercised against the live service, not written from the spec.

The eleven routes

Bearer auth on every call. Idempotency-Key on every mutating POST, so a retry can never send twice. Refusals arrive as application/problem+json with a machine-readable type — branch on that, never on the English.

loading…

SDKs

Go

import "github.com/con5ult/ngaige-go/ngaige"

c := ngaige.New(baseURL, key)
biz, _ := c.CreateBusiness(ctx, "Ta Karm Bakery", "TaKarm", "")
camp, _ := c.CreateDraft(ctx, "tuesday-offer", goal, audience,
    "Free coffee with any book. Reply STOP to opt out.",
    time.Now().Add(30*time.Minute), "")
c.GeneratePlan(ctx, camp.ID, "")
c.Submit(ctx, camp.ID, "")
c.Approve(ctx, camp.ID, "owner:glen", "")   // a person, by name
c.Dispatch(ctx, camp.ID, targets, "")

TypeScript

import { Ngaige } from "@con5ult/ngaige";

const ng = new Ngaige(key);
const biz  = await ng.createBusiness("Ta Karm Bakery", "TaKarm");
const camp = await ng.createDraft({
  name: "tuesday-offer", goal, audience,
  message: "Free coffee with any book. Reply STOP to opt out.",
  schedule: new Date(Date.now() + 30*60_000),
});
await ng.generatePlan(camp.id);
await ng.submit(camp.id);
await ng.approve(camp.id, "owner:glen");    // a person, by name
await ng.dispatch(camp.id, targets);

Both SDKs carry the sharp edges for you. Schedules are truncated to whole seconds (fractional seconds create a campaign the service will never plan). Idempotency keys are generated and reused correctly on retry. Rate limits are honoured once, automatically. Refusals come back as typed values you can switch on.

Try it, right here

Paste a key and make a real call against the live service. Your key stays in this browser tab — it is never stored, logged or sent anywhere but the API.

Reads are safe to poke at. POST calls do real things — they create real records against whatever tenant your key belongs to.

Two applications, built on exactly these routes

TownCrier

An independent third-party app: a shop owner pastes a key and runs campaigns from their phone. Live segment and cost meter, the consent rules surfaced kindly, and the whole approval pipeline as a visible stepper.

towncrier.staging.con5ult.com

Luzzu Mobile

An operator embedding NGAIGE inside its own subscriber app — including a staff console that mints subscriber keys live. The operator keeps its own world; the key is the only bridge.

luzzu.staging.con5ult.com

The long-form guides