PHPackages                             palpalani/laravel-bandwidth-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. palpalani/laravel-bandwidth-api

ActiveLibrary[API Development](/categories/api)

palpalani/laravel-bandwidth-api
===============================

Laravel wrapper for Bandwidth API - Send SMS/MMS messages, make voice calls, implement two-factor authentication, and integrate WebRTC communications

0.7.0(1y ago)35.4k↓21.4%2[1 PRs](https://github.com/palpalani/laravel-bandwidth-api/pulls)MITPHPPHP ^8.2CI failing

Since Aug 15Pushed 1w ago1 watchersCompare

[ Source](https://github.com/palpalani/laravel-bandwidth-api)[ Packagist](https://packagist.org/packages/palpalani/laravel-bandwidth-api)[ Docs](https://github.com/palpalani/laravel-bandwidth-api)[ GitHub Sponsors](https://github.com/palPalani)[ RSS](/packages/palpalani-laravel-bandwidth-api/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (15)Versions (21)Used By (0)

Bandwidth API for Laravel
=========================

[](#bandwidth-api-for-laravel)

[![Latest Version on Packagist](https://camo.githubusercontent.com/2b1ae59d251915b1203b046f98690b1af7c0df82179d5c1e5bcdb5298ee6b7d9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f70616c70616c616e692f6c61726176656c2d62616e6477696474682d6170692e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/palpalani/laravel-bandwidth-api)[![PHP Version](https://camo.githubusercontent.com/73638c77662aa8068f074986a348d4cce8218cd4d9e6172cb94e545d1d6b857d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f70616c70616c616e692f6c61726176656c2d62616e6477696474682d6170692f7068703f7374796c653d666c61742d737175617265)](https://packagist.org/packages/palpalani/laravel-bandwidth-api)[![Laravel Version](https://camo.githubusercontent.com/c5636cbc00edeb2fc30bc0a089aca31231cc9b87845c6d56b74fb9e2fc931b02/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31302e7825323025374325323031312e7825323025374325323031322e782d4646324432303f7374796c653d666c61742d737175617265266c6f676f3d6c61726176656c)](https://packagist.org/packages/palpalani/laravel-bandwidth-api)[![GitHub Tests Action Status](https://camo.githubusercontent.com/66ce9281a611f7b46ad9aa65a00e2c74d4b9f06041d6ee4ba7e94e920f84f6b1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f70616c70616c616e692f6c61726176656c2d62616e6477696474682d6170692f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/palpalani/laravel-bandwidth-api/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/c8ab3f1332bf13d558c4b2ddede118be7fa5f32162ccd66bb281b758f78dcc6c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f70616c70616c616e692f6c61726176656c2d62616e6477696474682d6170692f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65267374796c653d666c61742d737175617265)](https://github.com/palpalani/laravel-bandwidth-api/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/c0083ad9ba32145e5390fca79a2e29cc5a916fd051799c4adf5704b9d5830115/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70616c70616c616e692f6c61726176656c2d62616e6477696474682d6170692e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/palpalani/laravel-bandwidth-api)[![License](https://camo.githubusercontent.com/5f4f5435605c670a11cbe2d4b1a4e06ad4daccbcebfcaba583cc7baead8d6919/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f70616c70616c616e692f6c61726176656c2d62616e6477696474682d6170693f7374796c653d666c61742d737175617265)](https://github.com/palpalani/laravel-bandwidth-api/blob/main/LICENSE.md)

---

A simple, elegant Laravel wrapper for the [Bandwidth API](https://www.bandwidth.com/). Send SMS/MMS messages, make voice calls, implement two-factor authentication, and integrate WebRTC communications into your Laravel applications with ease.

Features
--------

[](#features)

- 📱 **SMS/MMS Messaging** - Send text and multimedia messages with media attachments
- 📞 **Voice API** - Manage inbound and outbound voice calls
- 🔐 **Two-Factor Authentication** - Implement 2FA with voice or SMS
- 🌐 **WebRTC** - Browser-based real-time communications
- 🔍 **Phone Number Lookup** - Validate and lookup phone number information
- 🎛️ **Dashboard API** - Manage your Bandwidth account programmatically
- ✨ **Structured Responses** - Consistent error handling and response format
- 🎯 **Message Tagging** - Organize and track messages with custom tags
- 🏗️ **Laravel Integration** - Service provider, facade, and dependency injection support

Requirements
------------

[](#requirements)

- PHP 8.3 or higher
- Laravel 11.x, or 12.x
- A [Bandwidth account](https://www.bandwidth.com/) with API credentials

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require palpalani/laravel-bandwidth-api
```

Publish the configuration file:

```
php artisan vendor:publish --provider="palPalani\Bandwidth\BandwidthServiceProvider" --tag="laravel-bandwidth-api-config"
```

This will create a `config/bandwidth.php` configuration file.

Configuration
-------------

[](#configuration)

Add your Bandwidth API credentials to your `.env` file:

```
# Messaging API (SMS/MMS)
BANDWIDTH_MESSAGING_USERNAME=your-messaging-username
BANDWIDTH_MESSAGING_PASSWORD=your-messaging-password
BANDWIDTH_MESSAGING_ACCOUNT_ID=your-account-id
BANDWIDTH_MESSAGING_APPLICATION_ID=your-application-id

# Voice API
BANDWIDTH_VOICE_USERNAME=your-voice-username
BANDWIDTH_VOICE_PASSWORD=your-voice-password
BANDWIDTH_VOICE_ACCOUNT_ID=your-voice-account-id

# Two-Factor Authentication
BANDWIDTH_TWO_FACTOR_USERNAME=your-2fa-username
BANDWIDTH_TWO_FACTOR_PASSWORD=your-2fa-password
BANDWIDTH_TWO_FACTOR_ACCOUNT_ID=your-2fa-account-id

# WebRTC
BANDWIDTH_WEBRTC_USERNAME=your-webrtc-username
BANDWIDTH_WEBRTC_PASSWORD=your-webrtc-password
BANDWIDTH_WEBRTC_ACCOUNT_ID=your-webrtc-account-id

# Dashboard/IRIS API (for account management)
BANDWIDTH_DASHBOARD_USERNAME=your-dashboard-username
BANDWIDTH_DASHBOARD_PASSWORD=your-dashboard-password
BANDWIDTH_DASHBOARD_API_URL=https://dashboard.bandwidth.com/api/
```

### Published Configuration File

[](#published-configuration-file)

The `config/bandwidth.php` file contains the following structure:

```
return [
    'messaging' => [
        'username' => env('BANDWIDTH_MESSAGING_USERNAME'),
        'password' => env('BANDWIDTH_MESSAGING_PASSWORD'),
        'account_id' => env('BANDWIDTH_MESSAGING_ACCOUNT_ID'),
        'application_id' => env('BANDWIDTH_MESSAGING_APPLICATION_ID'),
    ],

    'voice' => [
        'username' => env('BANDWIDTH_VOICE_USERNAME'),
        'password' => env('BANDWIDTH_VOICE_PASSWORD'),
        'account_id' => env('BANDWIDTH_VOICE_ACCOUNT_ID'),
    ],

    'twoFactor' => [
        'username' => env('BANDWIDTH_TWO_FACTOR_USERNAME'),
        'password' => env('BANDWIDTH_TWO_FACTOR_PASSWORD'),
        'account_id' => env('BANDWIDTH_TWO_FACTOR_ACCOUNT_ID'),
    ],

    'webRtc' => [
        'username' => env('BANDWIDTH_WEBRTC_USERNAME'),
        'password' => env('BANDWIDTH_WEBRTC_PASSWORD'),
        'account_id' => env('BANDWIDTH_WEBRTC_ACCOUNT_ID'),
    ],

    'dashboard' => [
        'username' => env('BANDWIDTH_DASHBOARD_USERNAME'),
        'password' => env('BANDWIDTH_DASHBOARD_PASSWORD'),
        'url' => env('BANDWIDTH_DASHBOARD_API_URL', 'https://dashboard.bandwidth.com/api/'),
    ],
];
```

> **Note:** You don't need credentials for all APIs. Configure only the services you plan to use.

### Getting Your Credentials

[](#getting-your-credentials)

1. Sign up for a [Bandwidth account](https://www.bandwidth.com/)
2. Navigate to your [Bandwidth Dashboard](https://dashboard.bandwidth.com/)
3. Create API credentials for the services you need
4. For messaging, create an Application to get your `application_id`
5. Your `account_id` can be found in your account settings

Usage
-----

[](#usage)

### Basic SMS Messaging

[](#basic-sms-messaging)

Using the Facade:

```
use palPalani\Bandwidth\Facades\Bandwidth;

$result = Bandwidth::sendMessage(
    from: '+1234567890',
    to: ['+0987654321'],
    text: 'Hello from Laravel!'
);

if ($result['success']) {
    echo "Message sent! ID: {$result['id']}";
} else {
    echo "Error: {$result['error']}";
}
```

Using Dependency Injection:

```
use palPalani\Bandwidth\Bandwidth;

class NotificationService
{
    public function __construct(
        private Bandwidth $bandwidth
    ) {}

    public function sendAlert(string $phone, string $message): array
    {
        return $this->bandwidth->sendMessage(
            from: config('app.sms_from_number'),
            to: [$phone],
            text: $message
        );
    }
}
```

### Message Tagging

[](#message-tagging)

Organize and track messages with custom tags (available since v0.6.0):

```
$result = Bandwidth::sendMessage(
    from: '+1234567890',
    to: ['+0987654321'],
    text: 'Your verification code is: 123456',
    tag: 'verification-code'
);
```

### Response Structure

[](#response-structure)

All `sendMessage()` calls return a structured array (since v0.5.0):

**Success Response:**

```
[
    'success' => true,
    'message' => 'Message sent successfully.',
    'id' => 'message-id-from-bandwidth',
    'data' => [...] // Full API response object
]
```

**Error Response:**

```
[
    'success' => false,
    'message' => 'Failed to send message.',
    'error' => 'Detailed error message from API'
]
```

### Error Handling

[](#error-handling)

```
$result = Bandwidth::sendMessage(
    from: '+1234567890',
    to: ['+0987654321'],
    text: 'Test message'
);

if ($result['success']) {
    // Success - message sent
    $messageId = $result['id'];
    $fullResponse = $result['data'];

    // Store message ID for tracking
    \Log::info("SMS sent successfully", ['id' => $messageId]);
} else {
    // Error occurred
    $errorMessage = $result['error'];

    // Log error for debugging
    \Log::error("SMS failed", ['error' => $errorMessage]);

    // Notify user or retry
    throw new \Exception("Could not send SMS: {$errorMessage}");
}
```

### Dashboard API Access

[](#dashboard-api-access)

Access your Bandwidth account information:

```
$account = Bandwidth::getAccount();

// Now you can use the Iris\Account object to manage your account
// See Bandwidth IRIS API documentation for available methods
```

### Advanced: Direct SDK Access

[](#advanced-direct-sdk-access)

For advanced use cases, access the underlying Bandwidth SDK clients directly:

```
// Get the main Bandwidth client
$client = app('bandwidth');

// Access specific API clients
$messagingClient = $client->getMessaging();
$voiceClient = $client->getVoice();
$webRtcClient = $client->getWebRtc();
$mfaClient = $client->getMultiFactorAuth();
$lookupClient = $client->getPhoneNumberLookup();

// Access Dashboard/IRIS client
$irisClient = app('phone');
```

API Reference
-------------

[](#api-reference)

### Bandwidth Class

[](#bandwidth-class)

#### `sendMessage()`

[](#sendmessage)

Send an SMS or MMS message.

```
public function sendMessage(
    string $from,
    array $to,
    string $text,
    string|null $tag = null
): array
```

**Parameters:**

- `$from` - The phone number to send from (E.164 format)
- `$to` - Array of recipient phone numbers (E.164 format)
- `$text` - The message text content
- `$tag` - Optional tag for organizing messages (since v0.6.0)

**Returns:** Array with keys:

- `success` (bool) - Whether the operation succeeded
- `message` (string) - Human-readable status message
- `id` (string|null) - Bandwidth message ID on success
- `data` (object) - Full API response on success
- `error` (string) - Error message on failure

#### `getAccount()`

[](#getaccount)

Get the Bandwidth account object for dashboard operations.

```
public function getAccount(): Iris\Account
```

**Returns:** `Iris\Account` object for account management

Environment Variables
---------------------

[](#environment-variables)

VariableRequiredDescriptionExample`BANDWIDTH_MESSAGING_USERNAME`For SMS/MMSMessaging API username`api-user-123``BANDWIDTH_MESSAGING_PASSWORD`For SMS/MMSMessaging API password`api-password-456``BANDWIDTH_MESSAGING_ACCOUNT_ID`For SMS/MMSYour Bandwidth account ID`1234567``BANDWIDTH_MESSAGING_APPLICATION_ID`For SMS/MMSMessaging application ID`app-abc123``BANDWIDTH_VOICE_USERNAME`For VoiceVoice API username`voice-user-123``BANDWIDTH_VOICE_PASSWORD`For VoiceVoice API password`voice-pass-456``BANDWIDTH_VOICE_ACCOUNT_ID`For VoiceVoice account ID`1234567``BANDWIDTH_TWO_FACTOR_USERNAME`For 2FATwo-factor API username`2fa-user-123``BANDWIDTH_TWO_FACTOR_PASSWORD`For 2FATwo-factor API password`2fa-pass-456``BANDWIDTH_TWO_FACTOR_ACCOUNT_ID`For 2FATwo-factor account ID`1234567``BANDWIDTH_WEBRTC_USERNAME`For WebRTCWebRTC API username`webrtc-user-123``BANDWIDTH_WEBRTC_PASSWORD`For WebRTCWebRTC API password`webrtc-pass-456``BANDWIDTH_WEBRTC_ACCOUNT_ID`For WebRTCWebRTC account ID`1234567``BANDWIDTH_DASHBOARD_USERNAME`For DashboardDashboard/IRIS username`dashboard-user-123``BANDWIDTH_DASHBOARD_PASSWORD`For DashboardDashboard/IRIS password`dashboard-pass-456``BANDWIDTH_DASHBOARD_API_URL`OptionalDashboard API endpoint`https://dashboard.bandwidth.com/api/`Testing
-------

[](#testing)

Run the test suite:

```
composer test
```

Run static analysis:

```
composer analyse
```

Fix code style issues:

```
composer format
```

### Testing Your Integration

[](#testing-your-integration)

When testing, you can use Bandwidth's test credentials or mock the `Bandwidth` class:

```
use palPalani\Bandwidth\Facades\Bandwidth;

// In your tests
Bandwidth::shouldReceive('sendMessage')
    ->once()
    ->with('+1234567890', ['+0987654321'], 'Test message', null)
    ->andReturn([
        'success' => true,
        'message' => 'Message sent successfully.',
        'id' => 'test-message-id',
        'data' => (object) ['id' => 'test-message-id'],
    ]);
```

Troubleshooting
---------------

[](#troubleshooting)

### Common Issues

[](#common-issues)

**Problem:** "Application ID not configured"

- **Solution:** Ensure `BANDWIDTH_MESSAGING_APPLICATION_ID` is set in your `.env` file. This is required since v0.4.0.

**Problem:** "Invalid phone number format"

- **Solution:** Use E.164 format for phone numbers (e.g., `+1234567890`). Include the country code with `+` prefix.

**Problem:** "The `to` parameter must be an array"

- **Solution:** Always pass recipient numbers as an array: `to: ['+1234567890']` not `to: '+1234567890'`

**Problem:** "Unexpected response type"

- **Solution:** This usually indicates an API version mismatch. Ensure you're using compatible versions of `bandwidth/sdk` and `bandwidth/iris`.

### Enable Debug Logging

[](#enable-debug-logging)

Add logging to debug issues:

```
\Log::debug('Sending Bandwidth message', [
    'from' => $from,
    'to' => $to,
    'text' => $text,
]);

$result = Bandwidth::sendMessage($from, $to, $text);

\Log::debug('Bandwidth response', $result);
```

### Check API Status

[](#check-api-status)

Visit [Bandwidth Status Page](https://status.bandwidth.com/) to check for service outages.

Upgrade Guide
-------------

[](#upgrade-guide)

### Upgrading to v0.6.0 from v0.5.0

[](#upgrading-to-v060-from-v050)

**New Feature:** Optional `tag` parameter added to `sendMessage()`.

```
// Before (still works)
Bandwidth::sendMessage($from, $to, $text);

// After (optional tag parameter)
Bandwidth::sendMessage($from, $to, $text, 'my-tag');
```

No breaking changes - fully backward compatible.

### Upgrading to v0.5.0 from v0.4.0

[](#upgrading-to-v050-from-v040)

**Breaking Change:** `sendMessage()` response structure changed.

**Before (v0.4.0):**

```
// Returned mixed response or threw exceptions
$response = Bandwidth::sendMessage($from, $to, $text);
```

**After (v0.5.0):**

```
// Returns structured array
$result = Bandwidth::sendMessage($from, $to, $text);

if ($result['success']) {
    $messageId = $result['id'];
} else {
    $error = $result['error'];
}
```

**Migration Steps:**

1. Update all `sendMessage()` calls to handle the new array response
2. Replace exception handling with `$result['success']` checks
3. Update tests to expect the new response structure

### Upgrading to v0.4.0 from v0.3.0

[](#upgrading-to-v040-from-v030)

**Breaking Change:** Removed `$applicationId` parameter from `sendMessage()`.

**Before (v0.3.0):**

```
Bandwidth::sendMessage($from, $to, $text, $applicationId);
```

**After (v0.4.0):**

```
// applicationId now comes from config
Bandwidth::sendMessage($from, $to, $text);
```

**Migration Steps:**

1. Add `BANDWIDTH_MESSAGING_APPLICATION_ID` to your `.env` file
2. Remove the `$applicationId` parameter from all `sendMessage()` calls
3. Republish the config if you published it before v0.4.0

FAQ
---

[](#faq)

**Q: Do I need to configure all API credentials?**A: No, only configure the services you plan to use. For example, if you only need SMS, just set the messaging credentials.

**Q: What's the difference between `account_id` and `application_id`?**A: The `account_id` is your Bandwidth account identifier. The `application_id` is specific to your messaging application created in the Bandwidth dashboard. You need both for messaging.

**Q: Can I send messages to multiple recipients?**A: Yes, pass an array of phone numbers to the `to` parameter. Bandwidth will send individual messages to each recipient.

**Q: How do I send MMS with images?**A: Currently, the package's `sendMessage()` helper focuses on text messages. For MMS with media, use the direct SDK access to set the `media` property on the `MessageRequest` object.

**Q: Is there a rate limit?**A: Yes, Bandwidth enforces rate limits. Check your account's rate limits in the Bandwidth dashboard and implement appropriate throttling in your application.

**Q: How can I track message delivery status?**A: Configure webhooks in your Bandwidth dashboard to receive delivery receipts. The package returns a message ID that you can use to correlate webhook callbacks.

**Q: Does this support Laravel Vapor/serverless?**A: Yes, the package is stateless and works with serverless deployments like Laravel Vapor.

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

We welcome contributions! Whether it's:

- Bug reports and fixes
- Feature requests and implementations
- Documentation improvements
- Code quality enhancements

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

**Never commit your Bandwidth API credentials to version control.** Always use environment variables and keep your `.env` file secure.

Credits
-------

[](#credits)

- [palPalani](https://github.com/palpalani)
- [All Contributors](../../contributors)

This package is a Laravel wrapper for the official [Bandwidth SDK](https://github.com/Bandwidth/php-sdk). Special thanks to Bandwidth for providing excellent communications APIs.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

Resources
---------

[](#resources)

- [Bandwidth Developer Documentation](https://dev.bandwidth.com/)
- [Bandwidth API Reference](https://dev.bandwidth.com/apis/)
- [Bandwidth PHP SDK](https://github.com/Bandwidth/php-sdk)
- [Bandwidth IRIS SDK](https://github.com/Bandwidth/php-bandwidth-iris)
- [Package Documentation](https://github.com/palpalani/laravel-bandwidth-api)

---

**Note:** This is an unofficial Laravel package. Bandwidth® is a registered trademark of Bandwidth Inc.

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance73

Regular maintenance activity

Popularity27

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 76.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~87 days

Recently: every ~19 days

Total

16

Last Release

478d ago

PHP version history (3 changes)0.0.1PHP ^8.0

0.2.0PHP ^8.1

0.3.0PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/716695?v=4)[Palaniappan P](/maintainers/palpalani)[@palpalani](https://github.com/palpalani)

---

Top Contributors

[![palpalani](https://avatars.githubusercontent.com/u/716695?v=4)](https://github.com/palpalani "palpalani (84 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (23 commits)")[![gmanikandan-developer](https://avatars.githubusercontent.com/u/193489508?v=4)](https://github.com/gmanikandan-developer "gmanikandan-developer (3 commits)")

---

Tags

laravelpalpalanilaravel-bandwidth-api

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/palpalani-laravel-bandwidth-api/health.svg)

```
[![Health](https://phpackages.com/badges/palpalani-laravel-bandwidth-api/health.svg)](https://phpackages.com/packages/palpalani-laravel-bandwidth-api)
```

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.1k11.2M100](/packages/dedoc-scramble)[spatie/laravel-pdf

Create PDFs in Laravel apps

1.0k4.8M47](/packages/spatie-laravel-pdf)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

816333.8k3](/packages/defstudio-telegraph)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5021.9k](/packages/simplestats-io-laravel-client)[harris21/laravel-fuse

Circuit breaker for Laravel queue jobs. Protect your workers from cascading failures.

44855.7k](/packages/harris21-laravel-fuse)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
