mythicalsystems / pterodactyl-php-sdk
Modern, comprehensive PHP SDK for Pterodactyl Panel API - Complete replacement for abandoned/outdated Pterodactyl SDKs with full Admin, Client & Wings API support
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/mythicalsystems/pterodactyl-php-sdk
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.0
Replaces
README
The most comprehensive PHP SDK for Pterodactyl Panel API
Complete replacement for abandoned/outdated Pterodactyl SDKs with full Admin, Client & Wings API support
🚀 Quick Start
composer require mythicalsystems/pterodactyl-php-sdk
<?php use MythicalSystems\SDK\Pterodactyl\PterodactylSDK; // Initialize the SDK with all APIs $sdk = new PterodactylSDK( 'https://your-panel.com', // Panel URL 'ptlc_admin_xxxxxxxxxxxxx', // Admin API Key 'ptlc_client_xxxxxxxxxxxxx', // Client API Key 'wings.example.com', // Wings Host (optional) 8080, // Wings Port 'https', // Wings Protocol 'node-token-id.node-token-secret' // Wings Token (node-token-id.node-token-secret) ); // Use any API $servers = $sdk->admin()->servers()->listServers(); $account = $sdk->client()->getAccountDetails(); $system = $sdk->wings()->getSystem();
📚 Documentation
🎛️ Panel API
- Panel Overview - Complete Panel API documentation
- Getting Started - Setup and basic usage
- Admin API - Administrative operations
- Client API - User operations
🚀 Wings API
- Wings Overview - Complete Wings API documentation
- Getting Started - Setup and basic usage
- System Service - System monitoring
- Server Service - Server management
- Docker Service - Container management
- Transfer Service - Server transfers
- JWT Service - Token generation
📖 General
- Installation - Package installation
- Authentication - API key setup
- Error Handling - Exception management
- Examples - Real-world scenarios
✨ Features
🎛️ Admin API - Panel Administration
- Server Management - Create, update, delete, and manage servers
- User Management - User accounts, permissions, and roles
- Node Management - Server nodes and resource allocation
- Location Management - Geographic server locations
- Nest & Egg Management - Application templates and configurations
👤 Client API - User Operations
- Server Control - Power commands, console access, resource monitoring
- File Management - Upload, download, edit, compress files
- Database Management - Create, manage, and configure databases
- Backup System - Automated backups and restoration
- Account Settings - Profile management and API keys
- SSH Keys - Secure server access management
🚀 Wings API - Direct Daemon Access
- System Monitoring - Real-time stats and resource usage
- Server Operations - Direct server control and management
- Docker Integration - Container and image management
- Transfer System - Server migration between nodes
- JWT Tokens - Secure authentication tokens
🔧 API Clients
Individual API Access
// Admin API Only $admin = PterodactylSDK::adminOnly('https://panel.com', 'admin-key'); // Client API Only $client = PterodactylSDK::clientOnly('https://panel.com', 'client-key'); // Wings API Only $wings = PterodactylSDK::wingsOnly('wings.com', 8080, 'https', 'node-id.node-secret');
🛡️ Error Handling
use MythicalSystems\SDK\Pterodactyl\Exceptions\AuthenticationException; use MythicalSystems\SDK\Pterodactyl\Exceptions\PermissionException; use MythicalSystems\SDK\Pterodactyl\Exceptions\ResourceNotFoundException; try { $server = $sdk->admin()->servers()->getServer(1); } catch (AuthenticationException $e) { echo "Authentication failed: " . $e->getMessage(); } catch (PermissionException $e) { echo "Permission denied: " . $e->getMessage(); } catch (ResourceNotFoundException $e) { echo "Server not found: " . $e->getMessage(); }
🤝 Contributing
We welcome contributions! Please see our Contributing Guide for details.
📄 License
The MIT License (MIT). Please see License File for more information.
⭐ Star this repo if you find it useful!