A lightweight PHP SDK for Amplitude
- Supported APIs:
- Analytics HTTP API v2 (send events)
- Identify API (set/update user properties)
- User Privacy API (delete users, get deletion job statuses)
- Requirements: PHP 8.3+, ext-curl, ext-json
Use Composer:
composer require readdle/amplitude-phpuse Readdle\AmplitudeClient\Amplitude;
use Readdle\AmplitudeClient\Model\HttpApiV2\Event;
use Readdle\AmplitudeClient\Model\IdentifyApi\Identification;
$apiKey = 'YOUR_AMPLITUDE_API_KEY';
$apiSecret = 'YOUR_AMPLITUDE_SECRET'; // optional for HTTP API v2 and Identify API
$amplitude = new Amplitude($apiKey, $apiSecret);
// 1) Send a single event (HTTP API v2)
$event = new Event();
$event->setUserId('user-123');
$event->setEventType('purchase');
$event->setRevenue(9.99);
$amplitude->httpApiV2->sendEvent($event);
// 2) Identify: set/update user properties
$identification = new Identification();
$identification->setUserId('user-123');
$identification->userProperties->set('prop1', 'value1');
$identification->userProperties->set('prop2', 'value2');
$amplitude->identifyApi->identify($identification);
// 3) User Privacy API: create a deletion job
$request = [
'user_ids' => ['user-123', 'user-456'],
// see Amplitude official docs for other fields
];
$amplitude->userPrivacyApi->deleteUsers($request);The example/ directory contains runnable scripts that demonstrate all API calls:
The Amplitude class lets you override base URLs for each API via the $options argument:
use Readdle\AmplitudeClient\Amplitude;
$amplitude = new Amplitude(
'API_KEY',
'API_SECRET',
[
'httpApiV2' => [ 'baseUrl' => 'https://some.proxy.com' ],
'identifyApi' => [ 'baseUrl' => 'https://some.proxy2.com' ],
'userPrivacyApi' => [ 'baseUrl' => 'https://some.proxy3.com' ],
]
);A named singleton instance is also available:
$amplitude = Amplitude::getInstance('default', 'API_KEY', 'API_SECRET');This project uses PHP-CS-Fixer, PHPStan and PHPUnit tests.
composer run cs:check
composer run cs:fix
composer run phpstan
composer run testMIT