PHPackages                             keapgeek/laravel-keap - 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. keapgeek/laravel-keap

ActiveLibrary[API Development](/categories/api)

keapgeek/laravel-keap
=====================

Laravel Package for accessing the Keap REST API (v1/v2)

1.4.0(4mo ago)39.1k↑109.2%2MITPHPPHP ^8.2

Since May 23Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/keapgeek/laravel-keap)[ Packagist](https://packagist.org/packages/keapgeek/laravel-keap)[ Docs](https://github.com/keapgeek/laravel-keap)[ RSS](/packages/keapgeek-laravel-keap/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (10)Dependencies (8)Versions (13)Used By (0)

Laravel Package for accessing the Keap REST API (v1/v2)
=======================================================

[](#laravel-package-for-accessing-the-keap-rest-api-v1v2)

Let's be honest, the php-infusionsoft SDK is shit. Barely any support for modern version of PHP and all the laravel packages, such as the upwebdesign one, that has been the main inspiration for this package, rely on the old architecture and legacy version of the Infusionsoft API.

I jump in to ensure a Laravel 10+ support for this package that completely ignores the PHP SDK and builds it's own wrapper using Laravel helpers and architectures.

This package uses OAuth 2 with the REST API v1 or v2 of Keap, **WITHOUT** relying on the SDK of infusionsoft.

You can find a whole website with the documentation for this package at [in the wiki](https://github.com/keapgeek/laravel-keap/wiki).

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

[](#installation)

To install this package, we need to install the Laravel part and create the API credentials to connect to your Keap Application.

### Laravel set up

[](#laravel-set-up)

To install the package you can use the following command

```
composer require keapgeek/laravel-keap
```

then install the package to publish the configuration

```
php artisan keap:install
```

In the environment file add the following lines

```
KEAP_CLIENT_KEY="Client from the developer account"
KEAP_CLIENT_SECRET="Secret from the developer account"
```

### Keap set up

[](#keap-set-up)

Before we start installing the package, we need to create a Keap developer account and get our API credentials.

For more information look at the Keap documentation: [visit the complete Installation Guide](https://github.com/keapgeek/laravel-keap/wiki/Installation-Guide)

In shorts the steps are repeated here below:

- Create a Developer Account
- Generate the Api Keys
- Authenticate

First Use
---------

[](#first-use)

After installation and having setup the environment variables in the .env file. You can access the `/keap/auth` uri in your browser, even in the local version, to access the login page of Keap. Once logged in you can authorize the access to a specific app.

I strongly suggest to use a sandbox version of Keap, and test your Api before connecting it to your real app with your clients data.

Automatically Keap will redirect you to a confirmation page that will simply say `Successful Connection!`. From there you can start using the Laravel Keap service.

### Automatically refresh the Oath token

[](#automatically-refresh-the-oath-token)

Keap will transmit an access and refresh token that are stored in the cache, therefore pay attention when you clear it.

The refresh code can be used only for 24 hours. However, you can refresh the code with the artisan command

```
php artisan keap:refresh

```

You can set up this command in the `Console\Kernel.php` file to run twice or thrice a day to prevent the code from expiring.

```
    protected function schedule(Schedule $schedule): void
    {
        // Other scheduled commands
        $schedule->command('keap:refresh')->twiceDaily(1, 13);
    }
```

Accessing the API
-----------------

[](#accessing-the-api)

To access the REST API, you can use the `Keap` Facade:

```
use KeapGeek\Keap\Facades\Keap;

// To list all the contacts the contacts
Keap::contact()->list;

// To create a new tag
Keap::tag()->create(...);
```

The methods of the Keap Facade allow you to automatically call the API endpoints.

A list of all the available methods are can be found in the [API Docs](https://github.com/keapgeek/laravel-keap/wiki/Api-Endpoints)

Testing
-------

[](#testing)

```
composer test
```

Credits
-------

[](#credits)

Any help in developing this package is welcome!

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

License
-------

[](#license)

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

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance74

Regular maintenance activity

Popularity31

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 98.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 ~58 days

Recently: every ~140 days

Total

11

Last Release

148d ago

PHP version history (2 changes)1.0.0PHP ^8.2

1.3.1PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/552b5aa7ab775f5b73ebfd340bfbf922af893a120a4a97dc5abdf0ac7b116840?d=identicon)[azzarip](/maintainers/azzarip)

---

Top Contributors

[![azzarip](https://avatars.githubusercontent.com/u/116155557?v=4)](https://github.com/azzarip "azzarip (223 commits)")[![AidanLaycock](https://avatars.githubusercontent.com/u/21222371?v=4)](https://github.com/AidanLaycock "AidanLaycock (3 commits)")

---

Tags

api-restcrmkeaplaravellaravelREST APIinfusionsoftkeapkeapgeek

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/keapgeek-laravel-keap/health.svg)

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

###  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.

5022.0k](/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)
