PHPackages                             orbitconnect/orbit-server-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. orbitconnect/orbit-server-php

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

orbitconnect/orbit-server-php
=============================

OrbitConnect Server SDK for PHP — native cURL, no dependencies

1.0.0(1mo ago)01MITPHPPHP &gt;=8.1

Since May 1Pushed 1mo agoCompare

[ Source](https://github.com/core-dynamics/orbit-server-php)[ Packagist](https://packagist.org/packages/orbitconnect/orbit-server-php)[ Docs](https://github.com/core-dynamics/orbit-server-php)[ RSS](/packages/orbitconnect-orbit-server-php/feed)WikiDiscussions main Synced 1w ago

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

orbit-server-php
================

[](#orbit-server-php)

[![Latest Version on Packagist](https://camo.githubusercontent.com/81db052f3640dfe2f22ce9f92b689482e320272d696964a7cd9e07b6232012dc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f72626974636f6e6e6563742f6f726269742d7365727665722d7068702e737667)](https://packagist.org/packages/orbitconnect/orbit-server-php)[![PHP Version](https://camo.githubusercontent.com/91504a9790339e7fb7bc68381cde65dbc0b5c2d7c142731334b49d06d6fe6d3d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6f72626974636f6e6e6563742f6f726269742d7365727665722d7068702e737667)](https://packagist.org/packages/orbitconnect/orbit-server-php)[![License](https://camo.githubusercontent.com/5a83775fcfc2144349eb7382d6929f0b28b6b597ab7cb33b8340a061719870d8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6f72626974636f6e6e6563742f6f726269742d7365727665722d7068702e737667)](LICENSE)

Official PHP server SDK for [OrbitConnect](https://orbitconnect.cloud) — chat, calls, meetings, media, webhooks, and billing. Zero dependencies, native cURL only.

**Requires PHP 8.1+**

---

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

[](#installation)

```
composer require orbitconnect/orbit-server-php
```

---

Initialization
--------------

[](#initialization)

```
use OrbitConnect\Server\OrbitServer;

$orbit = new OrbitServer(secretKey: 'sk_live_...');
```

### With request signing (recommended for production)

[](#with-request-signing-recommended-for-production)

```
$orbit = new OrbitServer(
    secretKey:     'sk_live_...',
    signingSecret: 'whsec_...',
);
```

When a `signingSecret` is provided, every request is signed with HMAC-SHA256 via `x-request-signature` and `x-request-timestamp` headers. The secret must match `SIGNING_SECRET` on your OrbitConnect backend.

---

Namespaces
----------

[](#namespaces)

NamespaceAccess viaCoversUsers`$orbit->users`App user CRUD, token issuanceConversations`$orbit->conversations`Direct &amp; group conversations, participantsMessages`$orbit->messages`Send, edit, react, pin, search, syncCalls`$orbit->calls`Initiate, accept, reject, metrics, recordingsMeetings`$orbit->meetings`Schedule, start, end, participants, recordingsMedia`$orbit->media`Upload, stream, access control, recordingsRealtime`$orbit->realtime`Sessions, transitions, events, contextWebhooks`$orbit->webhooks`Endpoints, subscriptions, deliveries, eventsBilling`$orbit->billing`Wallet, transactions, usage, invoices---

Usage
-----

[](#usage)

### Users

[](#users)

```
// Create an app user
$user = $orbit->users->create([
    'external_id'  => 'user_123',
    'display_name' => 'Jane Doe',
    'metadata'     => ['plan' => 'pro'],
]);

// Issue a short-lived token for your frontend (pass to client SDK)
$token = $orbit->users->createToken($user['id'], ttl: 3600);

// Fetch by your own ID
$user = $orbit->users->getByExternalId('user_123');

// Deactivate (soft-delete, preserves history)
$orbit->users->deactivate($user['id']);
```

### Conversations &amp; Messages

[](#conversations--messages)

```
// Start a direct conversation
$conv = $orbit->conversations->create(
    ['type' => 'direct', 'participant_id' => $otherUserId],
    $actingUserId
);

// Send a message
$msg = $orbit->messages->send([
    'conversation_id' => $conv['id'],
    'content'         => 'Hey there!',
    'type'            => 'text',
], $actingUserId);

// Reply
$orbit->messages->reply([
    'conversation_id'     => $conv['id'],
    'content'             => 'Hello back!',
    'reply_to_message_id' => $msg['id'],
], $actingUserId);

// Paginate messages
$messages = $orbit->messages->list($conv['id'], [
    'limit'         => 50,
    'afterSequence' => 100,
], $actingUserId);

// Search
$results = $orbit->messages->search($conv['id'], 'hello', $actingUserId);
```

### Calls

[](#calls)

```
$call = $orbit->calls->initiate([
    'callee_id' => $calleeId,
    'type'      => 'video',
], $callerId);

$orbit->calls->accept($call['id'], $calleeId);
$orbit->calls->end($call['id'], $callerId);
```

### Meetings

[](#meetings)

```
$meeting = $orbit->meetings->create([
    'title'        => 'Team standup',
    'scheduled_at' => '2026-05-02T09:00:00Z',
], $hostId);

$orbit->meetings->addParticipant($meeting['id'], $guestId, $hostId);
$orbit->meetings->start($meeting['id'], $hostId);

// Generate a join token for a guest
$token = $orbit->meetings->generateToken($meeting['id'], [
    'app_user_id' => $guestId,
    'role'        => 'participant',
], $hostId);

$orbit->meetings->end($meeting['id'], $hostId);
```

### Media

[](#media)

```
// Get a pre-signed upload URL
$session = $orbit->media->generateUploadUrl('video/mp4', $userId);
// PUT your file to $session['upload_path']

// Get a stream URL once processing is done
$stream = $orbit->media->getStreamUrl($mediaId, $userId);

// Grant another user download access
$orbit->media->grantAccess($mediaId, [
    'app_user_id' => $otherUserId,
    'access_type' => 'download',
], $userId);
```

### Webhooks

[](#webhooks)

```
$wh = $orbit->webhooks->create('https://yourapp.com/webhooks/orbit');

$orbit->webhooks->subscribe($wh['id'], 'message.sent');
$orbit->webhooks->subscribe($wh['id'], 'call.ended');

// Publish a custom event
$orbit->webhooks->publish('user.upgraded', ['user_id' => $userId, 'plan' => 'pro']);

// Rotate the signing secret
$orbit->webhooks->rotateSecret($wh['id']);
```

### Billing

[](#billing)

```
$wallet = $orbit->billing->getWallet();
echo $wallet['balance'];

$orbit->billing->topUp(50.00);

$invoice = $orbit->billing->generateInvoice(
    new DateTime('2026-04-01'),
    new DateTime('2026-04-30'),
);
```

---

Error handling
--------------

[](#error-handling)

All API errors throw `OrbitConnect\Server\OrbitServerException`:

```
use OrbitConnect\Server\OrbitServerException;

try {
    $meeting = $orbit->meetings->get('mtg_unknown', $userId);
} catch (OrbitServerException $e) {
    echo $e->status;     // HTTP status code, e.g. 404
    echo $e->errorCode;  // API error code string, e.g. "resource_not_found"
    echo $e->getMessage();
}
```

---

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

[](#requirements)

- PHP 8.1+
- `ext-curl`
- `ext-json`

---

License
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance92

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

39d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d8a3db255d675b1ba75b6b1d29e50a32a24de2dab28d2ce5e9276aa22eba1acb?d=identicon)[core\_dynamics](/maintainers/core_dynamics)

---

Top Contributors

[![dawichcode](https://avatars.githubusercontent.com/u/169106035?v=4)](https://github.com/dawichcode "dawichcode (3 commits)")

---

Tags

sdkmessagingrealtimewebhookschatcallsMeetingsorbitconnect

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/orbitconnect-orbit-server-php/health.svg)

```
[![Health](https://phpackages.com/badges/orbitconnect-orbit-server-php/health.svg)](https://phpackages.com/packages/orbitconnect-orbit-server-php)
```

###  Alternatives

[musonza/chat

Chat Package for Laravel

1.2k267.5k1](/packages/musonza-chat)[php-junior/laravel-video-chat

Laravel Video Chat using Socket.IO and WebRTC

81618.2k](/packages/php-junior-laravel-video-chat)[lexxyungcarter/chatmessenger

Simple one-to-one/group chat messaging tool for Laravel 5, 6, 7, 8, 9 &amp; 10 with Pusher Integration

10725.0k](/packages/lexxyungcarter-chatmessenger)[syntaxlexx/chatmessenger

Simple one-to-one/group chat messaging tool for Laravel 5, 6, 7, 8, 9 &amp; 10 with Pusher Integration

10510.9k](/packages/syntaxlexx-chatmessenger)

PHPackages © 2026

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