API Documentation
REST over HTTPS. JSON in, JSON out. All endpoints are versioned under /v1 and require a bearer token issued from your Server Authority Token.
Overview
Base URL: https://api.nlscug.com/v1
Every response carries X-Request-Id for support correlation. Timestamps are ISO-8601 UTC. All payloads are UTF-8 JSON.
Authentication
Pass a JWT signed by your Server Authority Token in the Authorization header.
curl https://api.nlscug.com/v1/send \
-H "Authorization: Bearer eyJhbGciOiJFZERTQSI..."Tokens are minted by exchanging your signed assertion at POST /v1/auth/token.
Errors
{
"error": "not_found",
"message": "No message matches id msg_9999",
"request_id": "req_01HX..."
}Standard HTTP status codes: 400 invalid input, 401 missing/invalid bearer, 403 license scope mismatch, 404 not found, 422 unsendable recipient, 429 rate-limited, 5xx server.
Rate limits
Lifetime licenses include 100 messages/second per token, burst 400, and 50,000 recipients per campaign call. Need more throughput? Email api@nlscug.com.
Transactional SMTP Relay
Authenticated SMTP over TLS for transactional mail. Connect any mail client or framework to the relay host using credentials minted from your Server Authority Token.
HOSTsmtp.nlscug.com:587STARTTLS submission endpointHOSTsmtp.nlscug.com:465Implicit TLS submission endpointPOST/v1/smtp/credentialsMint scoped SMTP username & passwordcurl -X POST "https://api.nlscug.com/v1/smtp/credentials" \
-H "Authorization: Bearer $SLF_TOKEN" \
-d '{"label":"app-prod","scope":"send"}'Send API
Send a single transactional email — receipts, OTPs, password resets — over HTTPS instead of SMTP. Supports HTML, plain text, templates and attachments.
POST/v1/sendSend one transactional messageGET/v1/messages/{message_id}Fetch delivery status & eventsGET/v1/messages?status={s}List recent messages by statuscurl -X POST "https://api.nlscug.com/v1/send" \
-H "Authorization: Bearer $SLF_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from": "noreply@yourdomain.ug",
"to": "customer@example.com",
"subject": "Your receipt",
"html": "<h1>Thank you</h1>"
}'Bulk Campaign API
Send newsletters and announcements to managed lists with per-domain throttling, suppression and unsubscribe handling baked in.
POST/v1/campaignsCreate a campaign from a template & listPOST/v1/campaigns/{id}/sendQueue the campaign for deliveryGET/v1/campaigns/{id}/statsOpens, clicks, bounces & unsubscribesPOST/v1/lists/{id}/contactsAdd or upsert contacts to a listcurl -X POST "https://api.nlscug.com/v1/campaigns" \
-H "Authorization: Bearer $SLF_TOKEN" \
-d '{"list_id":"lst_01","template_id":"tpl_news","subject":"March update"}'Automation Flows API
Event-driven flows with triggers, delays and conditional branches. Send the right email at the right moment based on webhooks or schedules.
POST/v1/flowsCreate an automation flow definitionPOST/v1/flows/{id}/triggerFire an event into a flowPATCH/v1/flows/{id}Update steps, delays or branchesGET/v1/flows/{id}/runsInspect flow run historycurl -X POST "https://api.nlscug.com/v1/flows/flow_welcome/trigger" \
-H "Authorization: Bearer $SLF_TOKEN" \
-d '{"contact":"customer@example.com","data":{"name":"Amina"}}'Inbound Parse & Webhooks
Route incoming mail to your endpoints as structured JSON. Configure an MX-routed address and receive parsed replies, attachments and spam scores.
POST/v1/inbound/routesRegister an inbound address & webhook URLGET/v1/inbound/routesList configured inbound routesGET/v1/inbound/messages/{id}Fetch a parsed inbound messagecurl -X POST "https://api.nlscug.com/v1/inbound/routes" \
-H "Authorization: Bearer $SLF_TOKEN" \
-d '{"address":"support@yourdomain.ug","webhook":"https://app/hook"}'Server Authority Token — Lifetime
A sovereign ED25519 keypair bound to your verified legal identity. Used to sign JWTs that every NLSC service trusts without further negotiation.
POST/v1/auth/tokenExchange a signed assertion for a short-lived bearer JWTGET/v1/auth/jwksPublic JWKS for downstream servicesPOST/v1/auth/introspectValidate a presented bearer tokencurl -X POST "https://api.nlscug.com/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{"assertion":"eyJhbGciOiJFZERTQSI..."}'NLSCEVO — WhatsApp API (Evolution)
Beyond email, NLSC ships NLSCEVO — a full WhatsApp API built on the Evolution engine. Send and receive WhatsApp messages, media, groups and status directly from your own number, fully eliminating third-party providers like Twilio. Authenticate with a Bearer token, exactly like the rest of the API.
curl -X POST "https://evo.nlscug.com/message/sendText/sales-team" \
-H "Authorization: Bearer <copied token>" \
-d '{"number":"256700000000","text":"Hello from NLSCEVO"}'NLSCEVO vs Twilio & other providers
| Feature | NLSCEVO | Twilio & others |
|---|---|---|
| Pricing model | One-time USh 760,000 lifetime license | Per-message + per-number monthly fees |
| WhatsApp sending & receiving | Full inbound & outbound, native | Outbound + inbound via approved templates |
| Number ownership | Your own number, no reseller lock-in | Number leased from provider |
| Message templates approval | No third-party gatekeeping | Meta + Twilio template review |
| Media, groups & status | Images, audio, docs, groups, status | Limited group / status support |
| Support | Full-time lifetime support included | Paid support tiers |
| Updates | Lifetime free updates | Subject to API version changes |
| Data sovereignty | Signed & settled in Uganda (UGX) | Foreign billing & data residency |
USh 500,000 per API · Server Authority Token issued in 2 working days.
Explore lifetime licenses →