PHPackages                             confidencesapp/oktave-sdk-php - 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. confidencesapp/oktave-sdk-php

ActiveLibrary[API Development](/categories/api)

confidencesapp/oktave-sdk-php
=============================

The Oktave PHP SDK

0.3.2(4y ago)13.6kMITPHPPHP ^7.4 || ^8.0CI failing

Since Dec 10Pushed 4y ago2 watchersCompare

[ Source](https://github.com/ConfidencesApp/oktave-sdk-php)[ Packagist](https://packagist.org/packages/confidencesapp/oktave-sdk-php)[ RSS](/packages/confidencesapp-oktave-sdk-php/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (4)Versions (9)Used By (0)

Oktave PHP SDK
==============

[](#oktave-php-sdk)

This official PHP SDK for interacting with **Oktave**.

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

[](#installation)

You can install the package manually or by adding it to your `composer.json`:

```
{
  "require": {
      "confidencesapp/oktave-sdk-php": "^0.3.0"
  }
}

```

Instantiating the SDK Client:
-----------------------------

[](#instantiating-the-sdk-client)

Pass in the configuration to the client:

```
$config = [
    'client_id' => '{your_client_uuid}',
    'client_secret' => '{your_client_secret}',
    'webhook_secret' => '{your_webhook_secret}', // optional, required for request signature validation
];
$oktave = new Oktave\Client($config);
```

Or configure after construct:

```
$oktave = new Oktave\Client()
            ->setClientID('uuid')
            ->setClientSecret('ok_cltsec_...')
            ->setWebhookSecret('ok_whsec_...'); // optional, required for request signature validation
```

**Note:** if you are unsure what your `client_id`, `client_secret` or `webhook_secret` are, please go to [your account](https://app.oktave.co/account/developer) and copy them.

For multiple teams users:
-------------------------

[](#for-multiple-teams-users)

Pass in the team ID to the client:

```
$config = [
    // ...
    'team_id' => '{your_team_uuid}' // optional, required to specify a team ID
];
$oktave = new Oktave\Client($config);
```

Or configure after construct:

```
$oktave = new Oktave\Client($config)
            ->setTeamId('uuid'); // optional, required to specify a team ID
```

**Attention!** If no `team` is specified, the team on which the OAuth client has been declared is used by default.

**Note:** if you are unsure what your `team` is, please go to [your account](https://app.oktave.co/account/developer) and copy it.

Reset to the default team without its ID:

```
// set the team to null.
$oktave = new Oktave\Client($config)
            ->setTeamId(null);
```

**Note:** the team value can be updated at anytime, for example between resource calls.

On-Premise Customers
--------------------

[](#on-premise-customers)

If you are an on-premise customer and have your own infrastructure with your own domain, you can configure the client to use your domain:

```
$oktave->setBaseURL('https://api.yourdomain.com');
```

Or by adding the `api_endpoint` field to the `$config` array you pass to the constructor.

Using the client
----------------

[](#using-the-client)

### Multiple Resources

[](#multiple-resources)

To return a list of your resources

```
// return a list of your blacklist items
$oktave->blacklistItems->all();
```

### Pagination

[](#pagination)

To return a paginated list of your resources

```
// return a list of your paginated blacklist items
// items per page accepted values : 10, 20, 50, 100

$result = $oktave->blacklistItems->perPage(20)->page(5)->all();
$result->data() // contains the ressource collection
$result->meta() // contains the current pagination meta

/* [ 'current_page' => 5, 'per_page' => 20, 'total' => 95 ] */
```

### Single Resource by ID

[](#single-resource-by-id)

Fetch a Resource by ID:

```
$oktave->blacklistItems->get($blacklistItemID);
```

Handling Exceptions
-------------------

[](#handling-exceptions)

Aside from errors that may occur due to the call, there may be other Exceptions thrown. To handle them, simply wrap your call in a try catch block:

```
try {
    $oktave->blacklistItems->all();
} catch (Exception $e) {
    // do something with $e
}
```

Internally, there are several custom Exceptions which may be raised - see the [Exceptions](src/Exceptions) directory for more information.

### Webhook request verification

[](#webhook-request-verification)

To verify a webhook request signature

```
// return true if the request signature is valid
$oktave->webhooks->verifySignatureFromGlobals();
```

```
$eventID = isset($_SERVER['HTTP_OKTAVE_EVENT_ID']) ? $_SERVER['HTTP_OKTAVE_EVENT_ID'] : null;
$requestTimestamp = isset($_SERVER['HTTP_OKTAVE_TIMESTAMP']) ? (int) $_SERVER['HTTP_OKTAVE_TIMESTAMP'] : null;
$signature = isset($_SERVER['HTTP_OKTAVE_SIGNATURE']) ? $_SERVER['HTTP_OKTAVE_SIGNATURE'] : null;

// return true if the request signature is valid
$oktave->webhooks->verifySignature($eventID, $requestTimestamp, $signature);
```

Test
----

[](#test)

```
phpunit
```

Generate a coverage report:

```
phpunit --coverage-html ./ignore
```

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.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 ~87 days

Recently: every ~144 days

Total

8

Last Release

1782d ago

PHP version history (3 changes)0.1.0PHP 7.\*

0.3.0PHP &gt;=7.3

0.3.2PHP ^7.4 || ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/93217bde570c9b88986f8169d16583793b188558c356726b590d7d896f88ffa8?d=identicon)[BnitoBzh](/maintainers/BnitoBzh)

---

Top Contributors

[![BnitoBzh](https://avatars.githubusercontent.com/u/2962152?v=4)](https://github.com/BnitoBzh "BnitoBzh (22 commits)")[![paul-thebaud](https://avatars.githubusercontent.com/u/18483833?v=4)](https://github.com/paul-thebaud "paul-thebaud (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/confidencesapp-oktave-sdk-php/health.svg)

```
[![Health](https://phpackages.com/badges/confidencesapp-oktave-sdk-php/health.svg)](https://phpackages.com/packages/confidencesapp-oktave-sdk-php)
```

###  Alternatives

[statamic/cms

The Statamic CMS Core Package

4.8k3.6M986](/packages/statamic-cms)[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3741.3M47](/packages/tencentcloud-tencentcloud-sdk-php)[neuron-core/neuron-ai

The PHP Agentic Framework.

2.0k656.1k38](/packages/neuron-core-neuron-ai)[avalara/avataxclient

Client library for Avalara's AvaTax suite of business tax calculation and processing services. Uses the REST v2 API.

528.5M7](/packages/avalara-avataxclient)[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)
