Create server
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://forge.laravel.com/api/orgs/{organization}/servers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'provider' => '<string>',
'credential_id' => 123,
'team_id' => 123,
'recipe_id' => 123,
'tags' => [
'<string>'
],
'aws' => [
'region_id' => '<string>',
'size_id' => '<string>',
'vpc_uuid' => '<string>',
'subnet_uuid' => '<string>',
'disk_size' => 1010
],
'ocean2' => [
'region_id' => '<string>',
'size_id' => '<string>',
'vpc_uuid' => '<string>',
'enable_weekly_backups' => true
],
'hetzner' => [
'region_id' => '<string>',
'size_id' => '<string>',
'network_id' => 123,
'enable_daily_backups' => true,
'enable_weekly_backups' => false
],
'vultr' => [
'region_id' => '<string>',
'size_id' => '<string>',
'network_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'akamai' => [
'region_id' => '<string>',
'size_id' => '<string>'
],
'laravel' => [
'region_id' => '<string>',
'size_id' => '<string>',
'vpc_uuid' => '<string>'
],
'custom' => [
'ip_address' => '<string>',
'private_ip_address' => '<string>',
'ssh_port' => 123,
'behind_nat' => true,
'nat_ssh_port' => 123
],
'add_key_to_source_control' => true,
'database' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}curl --request POST \
--url https://forge.laravel.com/api/orgs/{organization}/servers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"provider": "<string>",
"credential_id": 123,
"team_id": 123,
"recipe_id": 123,
"tags": [
"<string>"
],
"aws": {
"region_id": "<string>",
"size_id": "<string>",
"vpc_uuid": "<string>",
"subnet_uuid": "<string>",
"disk_size": 1010
},
"ocean2": {
"region_id": "<string>",
"size_id": "<string>",
"vpc_uuid": "<string>",
"enable_weekly_backups": true
},
"hetzner": {
"region_id": "<string>",
"size_id": "<string>",
"network_id": 123,
"enable_daily_backups": true,
"enable_weekly_backups": false
},
"vultr": {
"region_id": "<string>",
"size_id": "<string>",
"network_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"akamai": {
"region_id": "<string>",
"size_id": "<string>"
},
"laravel": {
"region_id": "<string>",
"size_id": "<string>",
"vpc_uuid": "<string>"
},
"custom": {
"ip_address": "<string>",
"private_ip_address": "<string>",
"ssh_port": 123,
"behind_nat": true,
"nat_ssh_port": 123
},
"add_key_to_source_control": true,
"database": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
provider: '<string>',
credential_id: 123,
team_id: 123,
recipe_id: 123,
tags: ['<string>'],
aws: {
region_id: '<string>',
size_id: '<string>',
vpc_uuid: '<string>',
subnet_uuid: '<string>',
disk_size: 1010
},
ocean2: {
region_id: '<string>',
size_id: '<string>',
vpc_uuid: '<string>',
enable_weekly_backups: true
},
hetzner: {
region_id: '<string>',
size_id: '<string>',
network_id: 123,
enable_daily_backups: true,
enable_weekly_backups: false
},
vultr: {
region_id: '<string>',
size_id: '<string>',
network_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
},
akamai: {region_id: '<string>', size_id: '<string>'},
laravel: {region_id: '<string>', size_id: '<string>', vpc_uuid: '<string>'},
custom: {
ip_address: '<string>',
private_ip_address: '<string>',
ssh_port: 123,
behind_nat: true,
nat_ssh_port: 123
},
add_key_to_source_control: true,
database: '<string>'
})
};
fetch('https://forge.laravel.com/api/orgs/{organization}/servers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://forge.laravel.com/api/orgs/{organization}/servers"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"provider\": \"<string>\",\n \"credential_id\": 123,\n \"team_id\": 123,\n \"recipe_id\": 123,\n \"tags\": [\n \"<string>\"\n ],\n \"aws\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"vpc_uuid\": \"<string>\",\n \"subnet_uuid\": \"<string>\",\n \"disk_size\": 1010\n },\n \"ocean2\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"vpc_uuid\": \"<string>\",\n \"enable_weekly_backups\": true\n },\n \"hetzner\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"network_id\": 123,\n \"enable_daily_backups\": true,\n \"enable_weekly_backups\": false\n },\n \"vultr\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"network_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"akamai\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\"\n },\n \"laravel\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"vpc_uuid\": \"<string>\"\n },\n \"custom\": {\n \"ip_address\": \"<string>\",\n \"private_ip_address\": \"<string>\",\n \"ssh_port\": 123,\n \"behind_nat\": true,\n \"nat_ssh_port\": 123\n },\n \"add_key_to_source_control\": true,\n \"database\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"id": "<string>",
"type": "servers",
"links": {
"self": {
"href": "<string>",
"rel": "<string>",
"describedby": "<string>",
"title": "<string>",
"type": "<string>",
"hreflang": "<string>",
"meta": {}
}
},
"attributes": {
"id": 123,
"credential_id": 123,
"name": "<string>",
"slug": "<string>",
"ubuntu_version": "<string>",
"ssh_port": 123,
"provider": "<string>",
"identifier": "<string>",
"size": "<string>",
"region": "<string>",
"php_version": "<string>",
"php_cli_version": "<string>",
"opcache_status": "<string>",
"database_type": "<string>",
"db_status": "<string>",
"redis_status": "<string>",
"ip_address": "<string>",
"private_ip_address": "<string>",
"revoked": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"connection_status": "<string>",
"timezone": "<string>",
"local_public_key": "<string>",
"is_ready": true
},
"relationships": {
"tags": {
"data": [
{
"type": "tags",
"id": "<string>"
}
]
}
}
},
"included": [
{
"id": "<string>",
"type": "tags",
"attributes": {
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Servers
Create server
Create a new server in the organization. Supports both standard cloud providers and custom VPS configurations.
Processing mode: async
POST
/
orgs
/
{organization}
/
servers
Create server
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://forge.laravel.com/api/orgs/{organization}/servers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'provider' => '<string>',
'credential_id' => 123,
'team_id' => 123,
'recipe_id' => 123,
'tags' => [
'<string>'
],
'aws' => [
'region_id' => '<string>',
'size_id' => '<string>',
'vpc_uuid' => '<string>',
'subnet_uuid' => '<string>',
'disk_size' => 1010
],
'ocean2' => [
'region_id' => '<string>',
'size_id' => '<string>',
'vpc_uuid' => '<string>',
'enable_weekly_backups' => true
],
'hetzner' => [
'region_id' => '<string>',
'size_id' => '<string>',
'network_id' => 123,
'enable_daily_backups' => true,
'enable_weekly_backups' => false
],
'vultr' => [
'region_id' => '<string>',
'size_id' => '<string>',
'network_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
],
'akamai' => [
'region_id' => '<string>',
'size_id' => '<string>'
],
'laravel' => [
'region_id' => '<string>',
'size_id' => '<string>',
'vpc_uuid' => '<string>'
],
'custom' => [
'ip_address' => '<string>',
'private_ip_address' => '<string>',
'ssh_port' => 123,
'behind_nat' => true,
'nat_ssh_port' => 123
],
'add_key_to_source_control' => true,
'database' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}curl --request POST \
--url https://forge.laravel.com/api/orgs/{organization}/servers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"provider": "<string>",
"credential_id": 123,
"team_id": 123,
"recipe_id": 123,
"tags": [
"<string>"
],
"aws": {
"region_id": "<string>",
"size_id": "<string>",
"vpc_uuid": "<string>",
"subnet_uuid": "<string>",
"disk_size": 1010
},
"ocean2": {
"region_id": "<string>",
"size_id": "<string>",
"vpc_uuid": "<string>",
"enable_weekly_backups": true
},
"hetzner": {
"region_id": "<string>",
"size_id": "<string>",
"network_id": 123,
"enable_daily_backups": true,
"enable_weekly_backups": false
},
"vultr": {
"region_id": "<string>",
"size_id": "<string>",
"network_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
},
"akamai": {
"region_id": "<string>",
"size_id": "<string>"
},
"laravel": {
"region_id": "<string>",
"size_id": "<string>",
"vpc_uuid": "<string>"
},
"custom": {
"ip_address": "<string>",
"private_ip_address": "<string>",
"ssh_port": 123,
"behind_nat": true,
"nat_ssh_port": 123
},
"add_key_to_source_control": true,
"database": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
provider: '<string>',
credential_id: 123,
team_id: 123,
recipe_id: 123,
tags: ['<string>'],
aws: {
region_id: '<string>',
size_id: '<string>',
vpc_uuid: '<string>',
subnet_uuid: '<string>',
disk_size: 1010
},
ocean2: {
region_id: '<string>',
size_id: '<string>',
vpc_uuid: '<string>',
enable_weekly_backups: true
},
hetzner: {
region_id: '<string>',
size_id: '<string>',
network_id: 123,
enable_daily_backups: true,
enable_weekly_backups: false
},
vultr: {
region_id: '<string>',
size_id: '<string>',
network_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
},
akamai: {region_id: '<string>', size_id: '<string>'},
laravel: {region_id: '<string>', size_id: '<string>', vpc_uuid: '<string>'},
custom: {
ip_address: '<string>',
private_ip_address: '<string>',
ssh_port: 123,
behind_nat: true,
nat_ssh_port: 123
},
add_key_to_source_control: true,
database: '<string>'
})
};
fetch('https://forge.laravel.com/api/orgs/{organization}/servers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://forge.laravel.com/api/orgs/{organization}/servers"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"provider\": \"<string>\",\n \"credential_id\": 123,\n \"team_id\": 123,\n \"recipe_id\": 123,\n \"tags\": [\n \"<string>\"\n ],\n \"aws\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"vpc_uuid\": \"<string>\",\n \"subnet_uuid\": \"<string>\",\n \"disk_size\": 1010\n },\n \"ocean2\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"vpc_uuid\": \"<string>\",\n \"enable_weekly_backups\": true\n },\n \"hetzner\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"network_id\": 123,\n \"enable_daily_backups\": true,\n \"enable_weekly_backups\": false\n },\n \"vultr\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"network_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n },\n \"akamai\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\"\n },\n \"laravel\": {\n \"region_id\": \"<string>\",\n \"size_id\": \"<string>\",\n \"vpc_uuid\": \"<string>\"\n },\n \"custom\": {\n \"ip_address\": \"<string>\",\n \"private_ip_address\": \"<string>\",\n \"ssh_port\": 123,\n \"behind_nat\": true,\n \"nat_ssh_port\": 123\n },\n \"add_key_to_source_control\": true,\n \"database\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"id": "<string>",
"type": "servers",
"links": {
"self": {
"href": "<string>",
"rel": "<string>",
"describedby": "<string>",
"title": "<string>",
"type": "<string>",
"hreflang": "<string>",
"meta": {}
}
},
"attributes": {
"id": 123,
"credential_id": 123,
"name": "<string>",
"slug": "<string>",
"ubuntu_version": "<string>",
"ssh_port": 123,
"provider": "<string>",
"identifier": "<string>",
"size": "<string>",
"region": "<string>",
"php_version": "<string>",
"php_cli_version": "<string>",
"opcache_status": "<string>",
"database_type": "<string>",
"db_status": "<string>",
"redis_status": "<string>",
"ip_address": "<string>",
"private_ip_address": "<string>",
"revoked": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"connection_status": "<string>",
"timezone": "<string>",
"local_public_key": "<string>",
"is_ready": true
},
"relationships": {
"tags": {
"data": [
{
"type": "tags",
"id": "<string>"
}
]
}
}
},
"included": [
{
"id": "<string>",
"type": "tags",
"attributes": {
"name": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The organization slug
Body
application/json
Maximum string length:
30Available options:
app, web, loadbalancer, database, cache, worker, meilisearch, openclaw Available options:
22.04, 24.04 Available options:
php5, php56-old, php56, php70, php71, php72, php73, php74, php80, php81, php82, php83, php84, php85 Available options:
mysql, mysql8, mysql84, mysql9, mariadb, mariadb106, mariadb1011, mariadb114, postgres, postgres13, postgres14, postgres15, postgres16, postgres17, postgres18 Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?
⌘I