Skip to main content

Overview

This is the comprehensive API documentation for the Mifumo SMS API Version 2.0. It includes all endpoints with complete JSON request/response examples for SMS operations, white-label/partner management, and payment integration. Base URL: https://mifumosms.mifumolabs.com API Version: 2.0 Authentication: API Key (recommended) or JWT Bearer Token

Quick Start

Get Your API Key

  1. Register at https://mifumosms.mifumolabs.com
  2. Login to your account
  3. Navigate to API Settings → Generate API Key

Base URL Structure

Base URL: https://mifumosms.mifumolabs.com API Paths:
  • External SMS API: /api/integration/v1/
  • Authentication: /api/auth/
  • Messaging: /api/messaging/
  • Billing: /api/billing/
  • White-Label API: /api/integration/v1/partner/

Example Request

API Structure

The API is organized into the following sections:

Authentication

or

JWT Token (Web Applications)

  1. Login: POST /api/auth/login/
  2. Use access_token in Authorization header

Core SMS API

Send SMS

POST /api/integration/v1/sms/send/ Send SMS to one or more recipients. Request:
Response:

Check Message Status

GET /api/integration/v1/sms/status// Response:

Get SMS Balance

GET /api/integration/v1/sms/balance/ Response:

White-Label / Partner API

Manage tenant accounts programmatically using your Customer API key. Tenants use your API key for all operations and do not have their own Mifumo SMS accounts.

Create Tenant Account

POST /api/integration/v1/partner/tenants/create/ Request:
Response:

Payment Integration

Payment Method: ZenoPay Mobile Money

All tenant payments use ZenoPay Mobile Money Integration. Payments go directly to Mifumo SMS. Tenants receive payment instructions on their phone and pay via mobile money. Credits are automatically added when payment completes. Supported Providers: vodacom, tigo, airtel, halotel

Initiate Payment for Tenant

POST /api/integration/v1/partner/tenants//payments/initiate/ Request:
Response:

Rate Limiting

API requests are rate-limited to prevent abuse:
  • Authenticated requests: 1000 requests per hour
  • Unauthenticated requests: 100 requests per hour
Rate limit headers are included in responses:

Pagination

List endpoints support pagination with the following query parameters:
  • page (integer): Page number (default: 1)
  • page_size (integer): Items per page (default: 20, max: 100)
Pagination response format:

Date Formats

All dates are returned in ISO 8601 format:
When sending dates in requests, use the same format or:
  • Date only: 2025-11-27
  • Date and time: 2025-11-27T10:30:00Z

Phone Number Format

Phone numbers should be in E.164 format:
  • ✅ Correct: +255614853618
  • ❌ Incorrect: 0614853618, 255614853618
The API will attempt to normalize phone numbers, but it’s recommended to send them in E.164 format.

Error Handling

HTTP Status Codes

Error Response Format

Code Examples

JavaScript (Fetch)

Python (Requests)

Support

For API support, contact:
Last Updated: December 2025 API Version: 2.0