Application Class
The Application class provides an interface for interacting with the Pterodactyl Application API. It enables full control over the panel, including user, node, location, server, database, nest, and allocation management.
Written By Cptcr
Last updated 12 months ago
Class: Application
Constructor
constructor(apiKey: string) apiKey: The API key used for authentication.
panel: The panel URL fetched from the
Setupclass.
API Endpoints
User Management
list(): Retrieves a list of all users.
getDetails(user_id: string): Fetches details of a user based on the provided
user_id.getDetailsByExternalId(external_id: string): Fetches user details based on their external ID.
create(user_details): Creates a new user.
update(user_id, user_data): Updates an existing user's details.
delete(user_id): Deletes a user from the system.
Example Usage:
const users = await app.users.list(); const user = await app.users.getDetails("123"); await app.users.create({ email: "user@example.com", username: "newuser" }); await app.users.update("123", { first_name: "John" }); await app.users.delete("123"); Node Management
list(): Retrieves a list of all nodes.
getDetails(node_id): Fetches details of a specific node.
create(node_data): Creates a new node.
update(node_id, node_data): Updates an existing node's details.
delete(node_id): Deletes a node from the system.
Example Usage:
const nodes = await app.nodes.list(); const node = await app.nodes.getDetails("10"); await app.nodes.create({ name: "Node1", location_id: 1 }); await app.nodes.update("10", { memory: 2048 }); await app.nodes.delete("10"); Server Management
list(): Retrieves a list of all servers.
getDetails(server_id): Fetches details of a specific server.
create(server_data): Creates a new server.
updateDetails(server_id, update_data): Updates a server's details.
updateBuild(server_id, build_data): Updates the server build configurations.
updateStartup(server_id, startup_data): Updates the startup configurations of a server.
suspend(server_id): Suspends a server.
unsuspend(server_id): Unsuspends a server.
reinstall(server_id): Reinstalls a server.
delete(server_id): Deletes a server.
forceDelete(server_id): Force deletes a server.
Example Usage:
const servers = await app.servers.list(); const server = await app.servers.getDetails("5"); await app.servers.create({ name: "MyServer", user: 1 }); await app.servers.updateDetails("5", { name: "UpdatedServer" }); await app.servers.suspend("5"); await app.servers.unsuspend("5"); await app.servers.reinstall("5"); await app.servers.delete("5"); await app.servers.forceDelete("5"); Database Management
list(server_id): Retrieves all databases associated with a server.
getDetails(server_id, database_id): Fetches details of a specific database.
create(server_id, database_data): Creates a new database.
resetPassword(server_id, database_id): Resets the password of a database.
delete(server_id, database_id): Deletes a database.
Example Usage:
const databases = await app.databases.list("4"); const database = await app.databases.getDetails("4", "1"); await app.databases.create("4", { name: "game_db" }); await app.databases.resetPassword("4", "1"); await app.databases.delete("4", "1"); Allocations Management
list(node_id): Retrieves all allocations for a specific node.
create(node_id, ip, ports): Creates new allocations for a node.
delete(node_id, allocation_id): Deletes a specific allocation from a node.
Example Usage:
const allocations = await app.allocations.list("2"); await app.allocations.create("2", "192.168.1.1", [25565, 25566]); await app.allocations.delete("2", "5"); Conclusion
This documentation provides a full reference for the Application class, which interacts with the Pterodactyl API for managing users, nodes, locations, servers, databases, and allocations. Each endpoint is structured for easy integration within any JavaScript or TypeScript project.