Skip to main content
POST
/
orgs
/
{organization}
/
servers
/
{server}
/
database
/
schemas
Create database schema
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://forge.laravel.com/api/orgs/{organization}/servers/{server}/database/schemas",
  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' => 'forge',
    'user' => 'james',
    'password' => 'password'
  ]),
  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;
}
{
  "data": {
    "id": "<string>",
    "type": "databases",
    "attributes": {
      "name": "forge",
      "status": "installed",
      "created_at": "2025-07-29T09:00:00Z",
      "updated_at": "2025-07-30T09:00:00Z"
    },
    "links": {
      "self": {
        "href": "<string>",
        "rel": "<string>",
        "describedby": "<string>",
        "title": "<string>",
        "type": "<string>",
        "hreflang": "<string>",
        "meta": {}
      }
    }
  }
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

organization
string
required

The organization slug

server
integer
required

The server ID

Body

application/json
name
string
required

The name of the database to create.

Maximum length: 63
Example:

"forge"

user
string | null

The name of the database user to create. Only needed if a new user should be created alongside the database.

Example:

"james"

password
string | null

The password for the database user. Only used if the user is provided.

Maximum length: 255
Example:

"password"

Response

DatabaseResource

data
object
required
I