ayarse / msgowl-php
Unofficial PHP SDK for the MsgOwl SMS & OTP API
v1.0.0
2026-02-27 21:10 UTC
Requires
- php: ^8.2
- saloonphp/saloon: ^3.0
Requires (Dev)
- laravel/pint: ^1.27
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0|^3.0
README
Unofficial PHP SDK for the MsgOwl SMS & OTP API. Works as a standalone PHP library or with Laravel.
Requirements
- PHP 8.2+
Installation
composer require ayarse/msgowl-php
Quick Start
use MsgOwl\MsgOwl; $msgowl = new MsgOwl( restAccessKey: 'your-rest-api-key', otpAccessKey: 'your-otp-api-key', // optional, only needed for OTP ); // Send an SMS $msgowl->messages()->send('9601234567', 'MyApp', 'Hello from MsgOwl!'); // Send and verify an OTP $otp = $msgowl->otp()->send('9601234567'); $result = $msgowl->otp()->verify('9601234567', '352682');
Documentation
- Vanilla PHP Usage -- standalone usage with full API examples
- Laravel Usage -- facade, dependency injection, and config setup
Available Resources
| Method | Resource | Description |
|---|---|---|
balance() |
BalanceResource |
Check account balance |
messages() |
MessageResource |
Send, list, and fetch messages |
groups() |
GroupResource |
CRUD operations on groups |
contacts() |
ContactResource |
CRUD operations on contacts |
senderIds() |
SenderIdResource |
List registered sender IDs |
otp() |
OtpResource |
Send, resend, and verify OTPs |
Exception Classes
| Exception | HTTP Status | Description |
|---|---|---|
RateLimitedException |
429 | Rate limit exceeded. Has retryAfter, rateLimitLimit, rateLimitRemaining, rateLimitReset properties. |
ValidationException |
422 | Invalid request data (e.g., bulk limit exceeded). |
MsgOwlException |
4xx / 5xx | Base exception for all other API errors. |
Disclaimer
This package is not affiliated with, endorsed by, or associated with MsgOwl or OXIQA Pvt Ltd. It was created for personal use.
License
MIT