Developer API
Documentation.
Integrate AlwaysUp monitoring directly into your workflows, scripts, and deployments.
Create & Manage Your API Keys
You must be logged in to generate API tokens and view interactive code snippets configured with your credentials.
Getting Started
AlwaysUp.dev offers a robust REST API allowing you to programmatically manage your uptime monitors.
All request and response bodies use the standard application/json format.
Authorization: Bearer your_api_token
Alternatively, pass it via the query string:
?api_token=your_api_token
Endpoint Reference
/api/monitors
Retrieves a list of all monitors configured for your current active team, including their groups and tags.
/api/monitors
Create a new uptime monitor. You must respect your plan's maximum monitor capacity and checking frequency limits.
| Parameter | Type | Status | Description |
|---|---|---|---|
| url | string | Required | The target URL or IP address (e.g. https://example.com). |
| type | string | Required | One of: http, keyword, ping, port, backlink. |
| check_interval | integer | Required | Seconds between checks. One of: 60, 300, 600, 1200, 3600, 43200, 86400. Free plan minimum is 300 seconds. |
| keyword | string | Conditional | Required if type is keyword. The string to search for on the page. |
| port | integer | Conditional | Required if type is port. Connection port number. |
| backlink_url | string | Conditional | Required if type is backlink. The backlink target domain/URL. |
| notify_email | boolean | Optional | Send email alerts on downtime events. (Default: false) |
| notify_slack | boolean | Optional | Send Slack alerts. Paid plans only. (Default: false) |
| group_id | integer | Optional | Associate monitor with a specific team group ID. |
/api/monitors/{id}
Returns full details of a specific monitor, including its associated group, tags, and its 50 most recent execution logs.
/api/monitors/{id}
Modify parameters of an existing monitor. Fields are identical to monitor creation parameters, but all parameters are optional.
/api/monitors/{id}
Permanently deletes an uptime monitor and clears all check histories.
/api/monitors/{id}/toggle
Convenient endpoint to toggle a monitor's active status. Pauses checking if running, resumes checking if paused.
# 1. List Monitors
curl -H "Authorization: Bearer your_api_token" \
https://alwaysup.dev/api/monitors
# 2. Create Monitor
curl -X POST \
-H "Authorization: Bearer your_api_token" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"type": "http",
"check_interval": 300
}' \
https://alwaysup.dev/api/monitors
// Fetch List of Monitors
const response = await fetch('https://alwaysup.dev/api/monitors', {
headers: {
'Authorization': 'Bearer your_token',
'Content-Type': 'application/json'
}
});
const data = await response.json();
console.log(data);
# Python requests example
import requests
headers = {
'Authorization': 'Bearer your_token',
'Content-Type': 'application/json'
}
# Fetch monitors list
r = requests.get('https://alwaysup.dev/api/monitors', headers=headers)
print(r.json())
// 1. Laravel HttpClient
use Illuminate\Support\Facades\Http;
$response = Http::withToken('your_token')
->get('https://alwaysup.dev/api/monitors');
$monitors = $response->json();
// 2. Native PHP cURL
$ch = curl_init('https://alwaysup.dev/api/monitors');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer your_token',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
curl_close($ch);
$monitors = json_decode($response, true);
// 3. Native PHP file_get_contents
$options = [
'http' => [
'method' => 'GET',
'header' => "Authorization: Bearer your_token\r\n" .
"Content-Type: application/json\r\n"
]
];
$context = stream_context_create($options);
$response = file_get_contents('https://alwaysup.dev/api/monitors', false, $context);
$monitors = json_decode($response, true);
{
"data": [
{
"id": 42,
"url": "https://example.com",
"type": "http",
"status": "up",
"is_active": true,
"check_interval": 300,
"created_at": "2026-06-05T02:00:00.000000Z"
}
]
}