readdle / amplitude-php
PHP SDK for Amplitude
Installs: 59
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/readdle/amplitude-php
Requires
- php: ^8.3
- ext-curl: *
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.89
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^12.4.1
This package is not auto-updated.
Last update: 2025-11-07 08:29:09 UTC
README
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
Installation
Use Composer:
composer require readdle/amplitude-php
Quick Start
use 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:
Configuration
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');
Running Tests
This project uses PHP-CS-Fixer, PHPStan and PHPUnit tests.
composer run cs:check
composer run cs:fix
composer run phpstan
composer run test
License
MIT