Skip to main content
POST
/
orgs
/
{organization}
/
servers
/
{server}
/
sites
/
{site}
/
domains
/
{domainRecord}
/
certificate
Create domain certificate
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://forge.laravel.com/api/orgs/{organization}/servers/{server}/sites/{site}/domains/{domainRecord}/certificate",
  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([
    'type' => 'letsencrypt',
    'letsencrypt' => [
        'verification_method' => 'dns-01',
        'key_type' => 'ecdsa',
        'preferred_chain' => 'ISRG Root X1'
    ],
    'existing' => [
        'key' => '<string>',
        'certificate' => '<string>'
    ],
    'csr' => [
        'domain' => '<string>',
        'sans' => '<string>',
        'country' => '<string>',
        'state' => '<string>',
        'city' => '<string>',
        'organization' => '<string>',
        'department' => '<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;
}
{
  "data": {
    "id": "<string>",
    "type": "certificates",
    "attributes": {
      "type": "letsencrypt",
      "verification_method": "http-01",
      "key_type": "ecdsa",
      "preferred_chain": "ISRG Root X1",
      "request_status": "'creating'",
      "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

site
integer
required

The site ID

domainRecord
integer
required

The domain record ID

Body

application/json
type
enum<string>
required

The type of certificate to create.

Available options:
letsencrypt,
csr,
existing
letsencrypt
object

The configuration for a Let's Encrypt certificate.

existing
object

The configuration for an existing certificate.

csr
object

The configuration for a CSR (Certificate Signing Request).

Response

CertificateResource

data
object
required
I