Skip to main content
POST
/
orgs
/
{organization}
/
servers
/
{server}
/
monitors
Create server monitor
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://forge.laravel.com/api/orgs/{organization}/servers/{server}/monitors",
  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' => 'cpu_load',
    'operator' => 'gte',
    'threshold' => 90,
    'minutes' => 1,
    'notify' => '[email protected]'
  ]),
  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": "monitors",
    "attributes": {
      "type": "cpu_load",
      "operator": "gte",
      "threshold": 90,
      "minutes": 1,
      "notify": "[email protected]",
      "status": "installed",
      "state": "OK",
      "state_changed_at": "2025-07-30T09:00:00Z",
      "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
type
enum<string>
required

The type of the monitor.

Available options:
cpu_load,
disk,
free_memory,
used_memory
operator
enum<string>
required

The operator used against the threshold.

Available options:
gte,
lte
threshold
number
required

The threshold to alert on once breached.

Example:

90

notify
string<email>
required

The email address to notify when the monitor is in an alert state.

minutes
integer

The frequency in minutes to evaluate the monitor.

Required range: 1 <= x <= 60
Example:

1

Response

MonitorResource

data
object
required
I