Calls dispatched
128,441
Last 30 days
Answer rate
51.4%
65,978 connected
DND filtered
22,610
Never dialled, never billed
Spend
₦1.09m
Connected calls only
Live campaigns
Dispatch is throttled to your purchased CPS tier. Raising the tier is a commercial change with the route, not a setting.
| Campaign | Purpose | Progress | State |
|---|
Throughput planner
Campaign duration is set by your CPS tier, not by list size.
Time to complete—
Calling days at 12h/day window—
Estimated cost (mixed networks)—
Billing rule
This is the exact wording used across Sendar. It must not drift.
How voice is billed
- You are billed for every dispatched call that connects.
- DND-blocked numbers are filtered before dispatch — never dialled, never billed.
- No-answer and busy calls carry no charge — the hold is released.
- There are no automatic refunds for a call that connected.
- Billing is per 60-second increment. MTN ₦20/min, other networks ₦15/min.
Call a single number
Add a number, pick a voice, dial it. Same DND and opt-out guards as a campaign.
Played before the voice asset. Required for political calls.
Verified numbers
Handsets this account controls. Test calls may reach these even if they're on DND — you're calling yourself.
| Number | Network | Label |
|---|
Today's ad-hoc calls
This screen is for test calls and genuine one-offs.
Used in the last 24h0 / 50
Why there's a cap
Without it, "add a number and call it" is one loop away from being a bulk dispatcher that never runs the consent gate. To reach a list, build a campaign — it checks lawful basis and pre-filters DND across the whole list before spending anything.
Recent single calls
| Number | Kind | State | Cost |
|---|
Voice campaigns
Every campaign runs preflight before it can launch.
| Name | List | Purpose | Voice | Status | Dialable |
|---|
Record a message
Record here in the browser, or upload a file you already have. Everything is converted to phone quality and its real length measured — because length is what you get billed on.
—
Uses your microphone. Nothing is uploaded until you press Save.
MP3, WAV, M4A, OGG or AMR. A voice note from WhatsApp works.
Voice library
Every asset carries a provenance record. Cloned voices need consent on file.
| Name | Source | Length | Cost per call | Consent | |
|---|---|---|---|---|---|
| Press Refresh. | |||||
What a broadcast will cost
Voice bills per started minute, so a three-minute message costs three times a one-minute one — per person.
| Network | Per call | Total |
|---|
Only reachable people are billed
DND-blocked numbers are filtered before dispatch and never dialled, so the real figure is usually lower than this. Run the campaign preflight for the exact number against your actual list.
Choosing a voice source
Read this before uploading anything.
Recorded — recommended
A studio or phone recording from a consenting speaker. No vendor policy risk, and it sounds better than a clone once the call is compressed to 8 kHz narrowband. For a fixed campaign message this is both the safer and the better-sounding option.
Licensed TTS
A vendor stock voice whose licence permits your use. Good for dynamic content — order numbers, appointment times, names — where a recording is impractical.
Cloned — heavily restricted
A synthesised replica of a real person's voice. Requires a consent reference on file and an expiry date. Cannot be used for political campaigns at all: ElevenLabs, PlayHT, Resemble and Cartesia all prohibit political campaigning, robocalling, and impersonation of candidates or officials even where authorisation exists. Self-hosting removes the vendor's rule, not the law.
IVR flow
Menu prompt plus DTMF options. Digit 9 is reserved for opt-out.
Generated call flow
This XML is what the route fetches the moment the call is answered.
Send a voice OTP
Voice OTP is the fallback when SMS OTP cannot reach a DND number.
What the recipient hears
Digits are spaced so the engine reads them individually rather than as one number.
DND exemption
OTP and transactional traffic bypass the promotional DND filter only for accounts holding a registered use case with the route. It is an ops-set account flag, not a self-serve checkbox.
Call logs
Per-call state, duration, DTMF response and amount billed.
| Number | Network | State | Duration | DTMF | Billed |
|---|
Compose SMS
Live segmentation and pricing. What you see here is what the wallet is charged.
Cost breakdown
Sendar bills per segment, not per message.
Encoding—
Characters—
Per-segment limit—
Segments per message—
Price per segment—
Cost per recipient—
Total for this campaign—
Handset preview
How the message lands, split by segment.
Sent (30d)
2.41m
Segments billed
Delivery rate
94.2%
Per DLR, not guaranteed
DND filtered
318k
Never sent, never billed
Spend
₦14.3m
All dispatched segments
SMS campaigns
Same contact lists, same consent gate, same DND registry as Voice.
| Name | List | Class | Route | Enc | Segs | Status | Cost |
|---|
Billing rule
How SMS is billed
- Billed per segment dispatched — a 200-character message is two.
- Promotional ₦5.95, transactional ₦6.65 per segment.
- DND-blocked numbers are filtered before dispatch — never sent, never billed.
- A route rejection releases the hold — not billed.
- A delivery receipt saying undelivered still costs. There are no automatic refunds after dispatch.
Sender IDs
Nigerian operators reject unregistered alphanumeric originators. Max 11 characters, GSM-7 only.
| Value | Status | Transactional | Usable |
|---|
Per-operator TPS
Operators rate each SMPP bind separately. One global limiter either starves MTN or gets you throttled on 9mobile — so there is a token bucket per network.
| Network | TPS per bind | Binds | Effective TPS |
|---|
Aggregate configured TPS—
Exceeding the agreed rate does not buy throughput
The SMSC answers ESME_RTHROTTLED (0x58) and may temporarily ban the bind. Raise these only to what the operator has actually agreed in writing.
Route comparison
| HTTP | SMPP | |
|---|---|---|
| Setup | API key | Bind credentials, IP allowlist |
| Throughput | Vendor's limit | Per-bind, scales with bind count |
| Delivery receipts | HTTP callback | deliver_sm on the same socket |
| Keepalive | None needed | enquire_link every 30s |
| Margin | Lower | Higher at volume |
| Ops burden | Low | Real |
Throughput planner
Effective aggregate TPS—
Time to complete—
SMS and voice are not comparable
An operator may take 150 SMS per second on one bind while selling you 10 voice calls per second. A voice call holds a channel for the length of the message; an SMS is fire-and-forget. Never quote an SMS figure for a voice campaign.
DND records
4.21m
Refreshed 6 hours ago
Suppression list
18,904
Opt-outs honoured across all channels
Blocked launches
2
Stopped by the consent gate
Consent matrix
A lawful basis attaches to a purpose. This is enforced in the API, not just here.
| Lawful basis | Marketing | Transactional | OTP | Public interest | Political |
|---|
Purchased and unknown-provenance lists can dispatch nothing
Under NDPA 2023 a lawful basis attaches to a specific purpose. A list bought, scraped or compiled for one purpose carries no basis for another, and political opinion is sensitive personal data requiring explicit consent. Re-permission the contacts before any dispatch. Penalties for a major data controller reach ₦10m or 2% of annual turnover.
Blocked launch log
| Campaign | When | Reason |
|---|
Calling window
Promotional voice traffic is restricted to 08:00–20:00 WAT. The dispatcher pauses outside the window and resumes automatically. OTP and transactional traffic are exempt.
Window08:00 – 20:00 Africa/Lagos
Status right now—
Contact lists
A list cannot be created without declaring how the contacts were obtained.
| List | Records | Lawful basis | Consent captured | Can dispatch |
|---|
Signup forms
A person types their own number and asks to be called. This is the only route that produces consent you can evidence per individual — which is exactly what Africa’s Talking and the four networks ask for.
| Form | Link | Callback | Signups | Status | |
|---|---|---|---|---|---|
| Sign in and press Refresh. | |||||
Submissions
Pick a form above to see who signed up and what happened to their call.
| When | Name | Number | Source | Outcome |
|---|
Share it
Three ways to put the same form in front of people. All three run the same guards.
The embed is an iframe on purpose
It costs a little polish and buys style isolation — a customer’s stylesheet cannot accidentally hide the consent checkbox, and their CSP does not have to be relaxed.
Test mode
While this is on, nothing dispatches to any number that is not on the list below. Campaigns, single calls, SMS and form callbacks alike.
Status
Not loaded. Press Refresh.
These should be handsets you can physically answer. It is not a pilot segment — to reach more than five numbers, leave test mode.
Turning this off is the one change that matters
It converts “nothing can go out” into “everything can”. It is written to the audit trail with your username against it. Do it deliberately, once the DND feed is loaded and a sender ID is approved.
Wallet
₦184,250
Shared across SMS, WhatsApp, Voice
Held (in flight)
₦0
All holds settled or released
Billed this month
₦1.09m
Connected calls only
Rate card
| Network | Per 60s increment | 30s call | 90s call |
|---|---|---|---|
| MTN | ₦20.00 | ₦20.00 | ₦40.00 |
| Airtel | ₦15.00 | ₦15.00 | ₦30.00 |
| Glo | ₦15.00 | ₦15.00 | ₦30.00 |
| 9mobile | ₦15.00 | ₦15.00 | ₦30.00 |
Partial minutes round up
A 30-second call bills one full 60-second increment. This is the route's own billing behaviour, passed through unchanged.