Database Management
The Application API Database Management endpoints allow administrators to manage databases for servers. These endpoints provide operations for creating, viewing, and managing MySQL databases associated with servers.
Administrative Access Required
These endpoints require administrative privileges and an Application API key with appropriate permissions.
List Server Databases
Retrieve a list of all databases for a specific server.
GET /api/application/servers/{server}/databases
Parameters
Parameter | Type | Location | Required | Description |
---|---|---|---|---|
server | string | path | Yes | The server's UUID or ID |
Query Parameters
Parameter | Type | Description | Default |
---|---|---|---|
page | integer | Page number for pagination | 1 |
per_page | integer | Results per page (1-100) | 50 |
include | string | Include related resources (host, password) | - |
- cURL
- JavaScript
- Python
- PHP
- Go
- Java
- C#
- Ruby
GET /api/application/servers/{server}/databases
curl -X GET "https://panel.example.com/api/application/servers/{server}/databases" \
-H "Authorization: Bearer YOUR_APPLICATION_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Node.js
const response = await fetch('https://panel.example.com/api/application/servers/{server}/databases', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
});
const databases = await response.json();
Python
import requests
response = requests.get(
'https://panel.example.com/api/application/servers/{server}/databases',
headers={
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
)
databases = response.json()
PHP
<?php
$ch = curl_init('https://panel.example.com/api/application/servers/{server}/databases');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_APPLICATION_API_KEY',
'Accept: application/json',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$databases = json_decode($response, true);
curl_close($ch);
Go
package main
import (
"net/http"
"io/ioutil"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://panel.example.com/api/application/servers/{server}/databases", nil)
req.Header.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
}
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://panel.example.com/api/application/servers/{server}/databases"))
.header("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
C#
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://panel.example.com/api/application/servers/{server}/databases");
var content = await response.Content.ReadAsStringAsync();
Ruby
require 'net/http'
require 'json'
uri = URI('https://panel.example.com/api/application/servers/{server}/databases')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer YOUR_APPLICATION_API_KEY'
request['Accept'] = 'application/json'
request['Content-Type'] = 'application/json'
response = http.request(request)
databases = JSON.parse(response.body)
Response
{
"object": "list",
"data": [
{
"object": "server_database",
"attributes": {
"id": 1,
"server": 1,
"host": 1,
"database": "s1_example",
"username": "u1_example",
"remote": "%",
"max_connections": 0,
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
}
}
],
"meta": {
"pagination": {
"total": 1,
"count": 1,
"per_page": 50,
"current_page": 1,
"total_pages": 1
}
}
}
Get Server Database
Retrieve details for a specific database.
GET /api/application/servers/{server}/databases/{database}
Parameters
Parameter | Type | Location | Required | Description |
---|---|---|---|---|
server | string | path | Yes | The server's UUID or ID |
database | integer | path | Yes | The database ID |
- cURL
- JavaScript
- Python
- PHP
- Go
- Java
- C#
- Ruby
GET /api/application/servers/{server}/databases/{database}
curl -X GET "https://panel.example.com/api/application/servers/{server}/databases/{database}" \
-H "Authorization: Bearer YOUR_APPLICATION_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Node.js
const response = await fetch('https://panel.example.com/api/application/servers/{server}/databases/{database}', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
});
const database = await response.json();
Python
import requests
response = requests.get(
'https://panel.example.com/api/application/servers/{server}/databases/{database}',
headers={
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
)
database = response.json()
PHP
<?php
$ch = curl_init('https://panel.example.com/api/application/servers/{server}/databases/{database}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_APPLICATION_API_KEY',
'Accept: application/json',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$database = json_decode($response, true);
curl_close($ch);
Go
package main
import (
"net/http"
"io/ioutil"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://panel.example.com/api/application/servers/{server}/databases/{database}", nil)
req.Header.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
}
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://panel.example.com/api/application/servers/{server}/databases/{database}"))
.header("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
C#
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("https://panel.example.com/api/application/servers/{server}/databases/{database}");
var content = await response.Content.ReadAsStringAsync();
Ruby
require 'net/http'
require 'json'
uri = URI('https://panel.example.com/api/application/servers/{server}/databases/{database}')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer YOUR_APPLICATION_API_KEY'
request['Accept'] = 'application/json'
request['Content-Type'] = 'application/json'
response = http.request(request)
database = JSON.parse(response.body)
Response
{
"object": "server_database",
"attributes": {
"id": 1,
"server": 1,
"host": 1,
"database": "s1_example",
"username": "u1_example",
"remote": "%",
"max_connections": 0,
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00",
"relationships": {
"password": {
"object": "database_password",
"attributes": {
"password": "example_password"
}
},
"host": {
"object": "database_host",
"attributes": {
"id": 1,
"name": "localhost",
"host": "127.0.0.1",
"port": 3306,
"username": "root",
"node": 1,
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00"
}
}
}
}
}
Create Server Database
Create a new database for a server.
POST /api/application/servers/{server}/databases
Parameters
Parameter | Type | Location | Required | Description |
---|---|---|---|---|
server | string | path | Yes | The server's UUID or ID |
Request Body
Field | Type | Required | Description |
---|---|---|---|
database | string | Yes | Database name (will be prefixed with server ID) |
remote | string | Yes | Remote connection address (use % for any) |
host | integer | Yes | Database host ID |
- cURL
- JavaScript
- Python
- PHP
- Go
- Java
- C#
- Ruby
POST /api/application/servers/{server}/databases
curl -X POST "https://panel.example.com/api/application/servers/{server}/databases" \
-H "Authorization: Bearer YOUR_APPLICATION_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"database": "my_database",
"remote": "%",
"host": 1
}'
Node.js
const response = await fetch('https://panel.example.com/api/application/servers/{server}/databases', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
database: 'my_database',
remote: '%',
host: 1
})
});
const database = await response.json();
Python
import requests
response = requests.post(
'https://panel.example.com/api/application/servers/{server}/databases',
headers={
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
},
json={
'database': 'my_database',
'remote': '%',
'host': 1
}
)
database = response.json()
PHP
<?php
$data = [
'database' => 'my_database',
'remote' => '%',
'host' => 1
];
$ch = curl_init('https://panel.example.com/api/application/servers/{server}/databases');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_APPLICATION_API_KEY',
'Accept: application/json',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$database = json_decode($response, true);
curl_close($ch);
Go
package main
import (
"bytes"
"encoding/json"
"net/http"
)
func main() {
data := map[string]interface{}{
"database": "my_database",
"remote": "%",
"host": 1,
}
jsonData, _ := json.Marshal(data)
client := &http.Client{}
req, _ := http.NewRequest("POST", "https://panel.example.com/api/application/servers/{server}/databases", bytes.NewBuffer(jsonData))
req.Header.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
}
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
String requestBody = """
{
"database": "my_database",
"remote": "%",
"host": 1
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://panel.example.com/api/application/servers/{server}/databases"))
.header("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
C#
using System.Net.Http;
using System.Text;
using System.Text.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY");
var data = new
{
database = "my_database",
remote = "%",
host = 1
};
var json = JsonSerializer.Serialize(data);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://panel.example.com/api/application/servers/{server}/databases", content);
Ruby
require 'net/http'
require 'json'
uri = URI('https://panel.example.com/api/application/servers/{server}/databases')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_APPLICATION_API_KEY'
request['Accept'] = 'application/json'
request['Content-Type'] = 'application/json'
request.body = {
database: 'my_database',
remote: '%',
host: 1
}.to_json
response = http.request(request)
database = JSON.parse(response.body)
Response
{
"object": "server_database",
"attributes": {
"id": 2,
"server": 1,
"host": 1,
"database": "s1_my_database",
"username": "u1_randomuser",
"remote": "%",
"max_connections": 0,
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00",
"relationships": {
"password": {
"object": "database_password",
"attributes": {
"password": "generated_password"
}
}
}
}
}
Reset Database Password
Reset the password for a server database.
POST /api/application/servers/{server}/databases/{database}/reset-password
Parameters
Parameter | Type | Location | Required | Description |
---|---|---|---|---|
server | string | path | Yes | The server's UUID or ID |
database | integer | path | Yes | The database ID |
- cURL
- JavaScript
- Python
- PHP
- Go
- Java
- C#
- Ruby
POST /api/application/servers/{server}/databases/{database}/reset-password
curl -X POST "https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password" \
-H "Authorization: Bearer YOUR_APPLICATION_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Node.js
const response = await fetch('https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
});
const result = await response.json();
Python
import requests
response = requests.post(
'https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password',
headers={
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
)
result = response.json()
PHP
<?php
$ch = curl_init('https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_APPLICATION_API_KEY',
'Accept: application/json',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);
Go
package main
import (
"net/http"
"io/ioutil"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("POST", "https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password", nil)
req.Header.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
}
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password"))
.header("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
C#
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.PostAsync("https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password", null);
var content = await response.Content.ReadAsStringAsync();
Ruby
require 'net/http'
require 'json'
uri = URI('https://panel.example.com/api/application/servers/{server}/databases/{database}/reset-password')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer YOUR_APPLICATION_API_KEY'
request['Accept'] = 'application/json'
request['Content-Type'] = 'application/json'
response = http.request(request)
result = JSON.parse(response.body)
Response
{
"object": "server_database",
"attributes": {
"id": 1,
"server": 1,
"host": 1,
"database": "s1_example",
"username": "u1_example",
"remote": "%",
"max_connections": 0,
"created_at": "2024-01-01T00:00:00+00:00",
"updated_at": "2024-01-01T00:00:00+00:00",
"relationships": {
"password": {
"object": "database_password",
"attributes": {
"password": "new_generated_password"
}
}
}
}
}
Delete Server Database
Delete a database from a server.
DELETE /api/application/servers/{server}/databases/{database}
Parameters
Parameter | Type | Location | Required | Description |
---|---|---|---|---|
server | string | path | Yes | The server's UUID or ID |
database | integer | path | Yes | The database ID |
- cURL
- JavaScript
- Python
- PHP
- Go
- Java
- C#
- Ruby
DELETE /api/application/servers/{server}/databases/{database}
curl -X DELETE "https://panel.example.com/api/application/servers/{server}/databases/{database}" \
-H "Authorization: Bearer YOUR_APPLICATION_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json"
Node.js
const response = await fetch('https://panel.example.com/api/application/servers/{server}/databases/{database}', {
method: 'DELETE',
headers: {
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
});
if (response.status === 204) {
console.log('Database deleted successfully');
}
Python
import requests
response = requests.delete(
'https://panel.example.com/api/application/servers/{server}/databases/{database}',
headers={
'Authorization': 'Bearer YOUR_APPLICATION_API_KEY',
'Accept': 'application/json',
'Content-Type': 'application/json'
}
)
if response.status_code == 204:
print('Database deleted successfully')
PHP
<?php
$ch = curl_init('https://panel.example.com/api/application/servers/{server}/databases/{database}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer YOUR_APPLICATION_API_KEY',
'Accept: application/json',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 204) {
echo 'Database deleted successfully';
}
Go
package main
import (
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("DELETE", "https://panel.example.com/api/application/servers/{server}/databases/{database}", nil)
req.Header.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
resp, _ := client.Do(req)
defer resp.Body.Close()
if resp.StatusCode == 204 {
fmt.Println("Database deleted successfully")
}
}
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://panel.example.com/api/application/servers/{server}/databases/{database}"))
.header("Authorization", "Bearer YOUR_APPLICATION_API_KEY")
.header("Accept", "application/json")
.header("Content-Type", "application/json")
.DELETE()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() == 204) {
System.out.println("Database deleted successfully");
}
C#
using System.Net.Http;
using System.Net.Http.Headers;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_APPLICATION_API_KEY");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.DeleteAsync("https://panel.example.com/api/application/servers/{server}/databases/{database}");
if (response.StatusCode == System.Net.HttpStatusCode.NoContent)
{
Console.WriteLine("Database deleted successfully");
}
Ruby
require 'net/http'
uri = URI('https://panel.example.com/api/application/servers/{server}/databases/{database}')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer YOUR_APPLICATION_API_KEY'
request['Accept'] = 'application/json'
request['Content-Type'] = 'application/json'
response = http.request(request)
if response.code == '204'
puts 'Database deleted successfully'
end
Response
Returns 204 No Content
on successful deletion.
Error Responses
All database management endpoints may return the following errors:
Status Code | Error | Description |
---|---|---|
400 | Bad Request | Invalid request parameters |
401 | Unauthorized | Invalid or missing API key |
403 | Forbidden | Insufficient permissions |
404 | Not Found | Server or database not found |
409 | Conflict | Database name already exists |
422 | Unprocessable Entity | Validation errors |
500 | Internal Server Error | Server error |
Error Response Format
{
"errors": [
{
"code": "ValidationException",
"status": "422",
"detail": "The database name has already been taken."
}
]
}