PHPackages                             jubaer/zoom-laravel - 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. jubaer/zoom-laravel

ActiveLibrary[API Development](/categories/api)

jubaer/zoom-laravel
===================

A comprehensive Zoom integration package for Laravel, providing easy-to-use API functionality to interact with the Zoom platform using PHP.

1.3.0(2y ago)59124.6k↓19%24[4 issues](https://github.com/JubaerHossain/zoom-laravel/issues)[3 PRs](https://github.com/JubaerHossain/zoom-laravel/pulls)MITPHPPHP ^7.2|^8.0

Since Jun 8Pushed 1y ago2 watchersCompare

[ Source](https://github.com/JubaerHossain/zoom-laravel)[ Packagist](https://packagist.org/packages/jubaer/zoom-laravel)[ Docs](https://github.com/JubaerHossain/zoom-laravel)[ RSS](/packages/jubaer-zoom-laravel/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (2)Dependencies (1)Versions (5)Used By (0)

zoom-laravel
============

[](#zoom-laravel)

[![Latest Stable Version](https://camo.githubusercontent.com/7a8f132dec51605fffe3395753a6b1fccf677ce38761236f8c88d6b5b0e040c8/687474703a2f2f706f7365722e707567782e6f72672f6a75626165722f7a6f6f6d2d6c61726176656c2f76)](https://packagist.org/packages/jubaer/zoom-laravel) [![Total Downloads](https://camo.githubusercontent.com/4b26795d6f9dc1ceafc679935bf10ec05cb5b6632b73210cedee1283d2de5ac7/687474703a2f2f706f7365722e707567782e6f72672f6a75626165722f7a6f6f6d2d6c61726176656c2f646f776e6c6f616473)](https://packagist.org/packages/jubaer/zoom-laravel) [![Latest Unstable Version](https://camo.githubusercontent.com/7d8eab937e0625468a7411bc1968b7e3a5fe9027e31f1dd10752d9c0ea44b6bc/687474703a2f2f706f7365722e707567782e6f72672f6a75626165722f7a6f6f6d2d6c61726176656c2f762f756e737461626c65)](https://packagist.org/packages/jubaer/zoom-laravel) [![License](https://camo.githubusercontent.com/fc204feb39ffbb72b134710f1cd663bd17324b1b5f584957de5d9c6cd6244c66/687474703a2f2f706f7365722e707567782e6f72672f6a75626165722f7a6f6f6d2d6c61726176656c2f6c6963656e7365)](https://packagist.org/packages/jubaer/zoom-laravel) [![PHP Version Require](https://camo.githubusercontent.com/89df72cabce49f5cabd09177a57ea51622cd0e83c61c8d8cb7c35460adb6bdae/687474703a2f2f706f7365722e707567782e6f72672f6a75626165722f7a6f6f6d2d6c61726176656c2f726571756972652f706870)](https://packagist.org/packages/jubaer/zoom-laravel)

The Laravel Zoom API Client is a powerful and comprehensive package designed to provide Laravel users with a unified and consistent approach to integrating Zoom APIs into their applications. With this package, developers can seamlessly interact with Zoom's feature-rich video communication platform, enabling them to create, manage, and enhance their Zoom meetings and webinars effortlessly.

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

[](#installation)

You can install the package via composer:

```
composer require jubaer/zoom-laravel
```

### Configuration file

[](#configuration-file)

Publish the configuration file

```
php artisan vendor:publish --provider="Jubaer\Zoom\ZoomServiceProvider"
```

#### then add config/app.php

[](#then-add-configappphp)

```
'providers' => [
    // ...
    Jubaer\Zoom\ZoomServiceProvider::class,
];
```

#### then add config/app.php

[](#then-add-configappphp-1)

```
'aliases' => [
    // ...
    'Zoom' => Jubaer\Zoom\Facades\Zoom::class,
];
```

This will create a zoom.php config file within your config directory for common user settings:-

```
return [
    'client_id' => env('ZOOM_CLIENT_KEY'),
    'client_secret' => env('ZOOM_CLIENT_SECRET'),
    'account_id' => env('ZOOM_ACCOUNT_ID'),
    'base_url' => 'https://api.zoom.us/v2/',
];
```

for a user specific user zoom configuration add User model:

```
    public static function clientID()
    {
        return 'zoom_client_of_user';
    }

    public static function clientSecret()
    {
        return 'zoom_client_secret_of_user';
    }

    public static function accountID()
    {
        return 'zoom_account_id_of_user';
    }
```

### How to get Zoom API credentials

[](#how-to-get-zoom-api-credentials)

- Go to  and create a Server-to-Server OAuth app [![](./assets/1.png)](./assets/1.png)
- then click on Continue [![](./assets/2.png)](./assets/2.png)
- then fill up the form and click on Continue [![](./assets/3.png)](./assets/3.png)
- then click on Continue
- then click on Add Scopes [![](./assets/5.png)](./assets/5.png)
- then mark all scopes and click on Done [![](./assets/6.png)](./assets/6.png)
- then click on Continue
- then activate your app
- then copy your API Key and API Secret

Usage
-----

[](#usage)

At present we cover the following modules

- Users
- Meetings
- Past Meetings
- Webinars
- Past Webinars
- Recordings
- Past Recordings

Common get functions
--------------------

[](#common-get-functions)

### Create a meeting

[](#create-a-meeting)

```
    $meetings = Zoom::createMeeting([
                    "agenda" => 'your agenda',
                    "topic" => 'your topic',
                    "type" => 2, // 1 => instant, 2 => scheduled, 3 => recurring with no fixed time, 8 => recurring with fixed time
                    "duration" => 60, // in minutes
                    "timezone" => 'Asia/Dhaka', // set your timezone
                    "password" => 'set your password',
                    "start_time" => 'set your start time', // set your start time
                    "template_id" => 'set your template id', // set your template id  Ex: "Dv4YdINdTk+Z5RToadh5ug==" from https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingtemplates
                    "pre_schedule" => false,  // set true if you want to create a pre-scheduled meeting
                    "schedule_for" => 'set your schedule for profile email ', // set your schedule for
                    "settings" => [
                        'join_before_host' => false, // if you want to join before host set true otherwise set false
                        'host_video' => false, // if you want to start video when host join set true otherwise set false
                        'participant_video' => false, // if you want to start video when participants join set true otherwise set false
                        'mute_upon_entry' => false, // if you want to mute participants when they join the meeting set true otherwise set false
                        'waiting_room' => false, // if you want to use waiting room for participants set true otherwise set false
                        'audio' => 'both', // values are 'both', 'telephony', 'voip'. default is both.
                        'auto_recording' => 'none', // values are 'none', 'local', 'cloud'. default is none.
                        'approval_type' => 0, // 0 => Automatically Approve, 1 => Manually Approve, 2 => No Registration Required
                    ],

                ]);
```

### Get a meeting

[](#get-a-meeting)

```
    $meeting = Zoom::getMeeting($meetingId);
```

### Update a meeting

[](#update-a-meeting)

```
    $meeting = Zoom::updateMeeting($meetingId, [
                    "agenda" => 'your agenda',
                    "topic" => 'your topic',
                    "type" => 2, // 1 => instant, 2 => scheduled, 3 => recurring with no fixed time, 8 => recurring with fixed time
                    "duration" => 60, // in minutes
                    "timezone" => 'Asia/Dhaka', // set your timezone
                    "password" => 'set your password',
                    "start_time" => 'set your start time', // set your start time
                    "template_id" => 'set your template id', // set your template id  Ex: "Dv4YdINdTk+Z5RToadh5ug==" from https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingtemplates
                    "pre_schedule" => false,  // set true if you want to create a pre-scheduled meeting
                    "schedule_for" => 'set your schedule for profile email ', // set your schedule for
                    "settings" => [
                        'join_before_host' => false, // if you want to join before host set true otherwise set false
                        'host_video' => false, // if you want to start video when host join set true otherwise set false
                        'participant_video' => false, // if you want to start video when participants join set true otherwise set false
                        'mute_upon_entry' => false, // if you want to mute participants when they join the meeting set true otherwise set false
                        'waiting_room' => false, // if you want to use waiting room for participants set true otherwise set false
                        'audio' => 'both', // values are 'both', 'telephony', 'voip'. default is both.
                        'auto_recording' => 'none', // values are 'none', 'local', 'cloud'. default is none.
                        'approval_type' => 0, // 0 => Automatically Approve, 1 => Manually Approve, 2 => No Registration Required
                    ],

                ]);
```

### Delete a meeting

[](#delete-a-meeting)

```
    $meeting = Zoom::deleteMeeting($meetingId);
```

### Get all meetings

[](#get-all-meetings)

```
    $meetings = Zoom::getAllMeeting();
```

### Get a meeting

[](#get-a-meeting-1)

```
    $meeting = Zoom::getMeeting($meetingId);
```

### Get all upcoming meetings

[](#get-all-upcoming-meetings)

```
    $meetings = Zoom::getUpcomingMeeting();
```

### Get all past meetings

[](#get-all-past-meetings)

```
    $meetings = Zoom::getPreviousMeetings();
```

### reschedule meeting

[](#reschedule-meeting)

```
    $meetings = Zoom::rescheduleMeeting($meetingId, [
                    "agenda" => 'your agenda',
                    "topic" => 'your topic',
                    "type" => 2, // 1 => instant, 2 => scheduled, 3 => recurring with no fixed time, 8 => recurring with fixed time
                    "duration" => 60, // in minutes
                    "timezone" => 'Asia/Dhaka', // set your timezone
                    "password" => 'set your password',
                    "start_time" => 'set your start time', // set your start time
                    "template_id" => 'set your template id', // set your template id  Ex: "Dv4YdINdTk+Z5RToadh5ug==" from https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingtemplates
                    "pre_schedule" => false,  // set true if you want to create a pre-scheduled meeting
                    "schedule_for" => 'set your schedule for profile email ', // set your schedule for
                    "settings" => [
                        'join_before_host' => false, // if you want to join before host set true otherwise set false
                        'host_video' => false, // if you want to start video when host join set true otherwise set false
                        'participant_video' => false, // if you want to start video when participants join set true otherwise set false
                        'mute_upon_entry' => false, // if you want to mute participants when they join the meeting set true otherwise set false
                        'waiting_room' => false, // if you want to use waiting room for participants set true otherwise set false
                        'audio' => 'both', // values are 'both', 'telephony', 'voip'. default is both.
                        'auto_recording' => 'none', // values are 'none', 'local', 'cloud'. default is none.
                        'approval_type' => 0, // 0 => Automatically Approve, 1 => Manually Approve, 2 => No Registration Required
                    ],

                ]);
```

### end meeting

[](#end-meeting)

```
    $meetings = Zoom::endMeeting($meetingId);
```

### delete meeting

[](#delete-meeting)

```
    $meetings = Zoom::deleteMeeting($meetingId);
```

### recover meeting

[](#recover-meeting)

```
    $meetings = Zoom::recoverMeeting($meetingId);
```

### Get all users

[](#get-all-users)

```
    $users = Zoom::getUsers(['status' => 'active']); // values are 'active', 'inactive', 'pending'. default is active. and you can pass page_size and page_number as well
```

### Changelog

[](#changelog)

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

### Security

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Jubaer Hossain](https://github.com/JubaerHossain)

License
-------

[](#license)

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

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity48

Moderate usage in the ecosystem

Community15

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.7% 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 ~46 days

Total

4

Last Release

984d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/37646382?v=4)[Jubaer Hossain](/maintainers/JubaerHossain)[@JubaerHossain](https://github.com/JubaerHossain)

---

Top Contributors

[![onesttitan](https://avatars.githubusercontent.com/u/141400593?v=4)](https://github.com/onesttitan "onesttitan (6 commits)")[![jmrashed](https://avatars.githubusercontent.com/u/8583051?v=4)](https://github.com/jmrashed "jmrashed (1 commits)")

---

Tags

laravel-zoomphp-zoomzoomzoom-apizoom-integrationzoom-meetingsapiclientlaravelzoomlaravel-zoom

### Embed Badge

![Health badge](/badges/jubaer-zoom-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/jubaer-zoom-laravel/health.svg)](https://phpackages.com/packages/jubaer-zoom-laravel)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k9.5M89](/packages/openai-php-laravel)[macsidigital/laravel-zoom

Laravel Zoom package

268386.0k](/packages/macsidigital-laravel-zoom)[resend/resend-php

Resend PHP library.

617.2M43](/packages/resend-resend-php)[mozex/anthropic-laravel

Laravel integration for the Anthropic API: facade, config publishing, install command, testing fakes, messages, streaming, tool use, thinking, and batches.

74331.3k1](/packages/mozex-anthropic-laravel)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)[files.com/files-php-sdk

Files.com PHP SDK

2481.1k](/packages/filescom-files-php-sdk)

PHPackages © 2026

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