Integrate EstaCaido with your applications
The EstaCaido API allows you to programmatically manage your monitors, view incidents, configure alerts, and more. All API endpoints use JSON for request and response bodies.
https://www.estacaido.com/api/v1/
API requests are limited to 100 requests per minute per API token. Exceeding this limit will result in a 429 Too Many Requests response.
Use token-based authentication for all API requests
/api/v1/auth/token/
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
-H "Content-Type: application/json" \
-d '{"username": "your@email.com", "password": "yourpassword"}'
{
"token": "your-api-token-here"
}
Authorization: Token your-api-token-here
Manage your website monitors.
/api/v1/monitors/
[
{
"id": 1,
"name": "Production API",
"company": {
"id": 1,
"website": "api.example.com"
},
"check_type": "http",
"check_interval": 5,
"is_active": true,
"is_paused": false,
"last_check_at": "2024-01-15T10:30:00Z",
"created_at": "2024-01-01T00:00:00Z"
}
]
/api/v1/monitors/
name |
Required | Name for the monitor |
domain |
Required | Domain to monitor (e.g., example.com) |
check_interval |
Optional | Check interval in minutes (1, 3, 5, 10, 15, 30, 60). Default: 5 |
check_type |
Optional | http, https, ping. Default: https |
/api/v1/monitors/{id}/
/api/v1/monitors/{id}/
/api/v1/monitors/{id}/
/api/v1/monitors/{id}/pause/
/api/v1/monitors/{id}/resume/
/api/v1/monitors/{id}/statistics/
days |
Optional | Number of days (default: 30) |
View downtime incidents and their history.
/api/v1/incidents/
status |
Optional | Filter by status: ongoing, resolved |
monitor |
Optional | Filter by monitor ID |
/api/v1/incidents/{id}/
Configure alert notifications for your monitors.
/api/v1/alerts/
/api/v1/alerts/
monitor |
Required | Filter by monitor ID |
alert_type |
Required | email, sms, slack, discord, webhook, pagerduty, teams |
recipients |
Required | Recipient addresses or webhook URLs |
alert_on_down |
Optional | Notify when site goes down (default: true) |
alert_on_recovery |
Optional | Notify when site recovers (default: true) |
/api/v1/alerts/{id}/
/api/v1/alerts/{id}/
Create and manage public status pages.
/api/v1/status-pages/
/api/v1/status-pages/
title |
Required | Title for the status page |
slug |
Required | URL slug (e.g., my-status-page) |
description |
Optional | Description text |
is_public |
Optional | Make publicly accessible (default: true) |
Manage team access and collaboration.
/api/v1/teams/
/api/v1/teams/
/api/v1/teams/{id}/
import requests
API_TOKEN = 'your-api-token'
BASE_URL = 'https://www.estacaido.com/api/v1'
headers = {
'Authorization': f'Token {API_TOKEN}',
'Content-Type': 'application/json'
}
# List all monitors
response = requests.get(f'{BASE_URL}/monitors/', headers=headers)
monitors = response.json()
print(monitors)
# Create a new monitor
new_monitor = {
'name': 'My Website',
'domain': 'example.com',
'check_interval': 5
}
response = requests.post(f'{BASE_URL}/monitors/', json=new_monitor, headers=headers)
print(response.json())
const API_TOKEN = 'your-api-token';
const BASE_URL = 'https://www.estacaido.com/api/v1';
const headers = {
'Authorization': `Token ${API_TOKEN}`,
'Content-Type': 'application/json'
};
// List all monitors
fetch(`${BASE_URL}/monitors/`, { headers })
.then(res => res.json())
.then(monitors => console.log(monitors));
// Create a new monitor
fetch(`${BASE_URL}/monitors/`, {
method: 'POST',
headers,
body: JSON.stringify({
name: 'My Website',
domain: 'example.com',
check_interval: 5
})
})
.then(res => res.json())
.then(data => console.log(data));
# List all monitors
curl -X GET https://www.estacaido.com/api/v1/monitors/ \
-H "Authorization: Token your-api-token"
# Create a new monitor
curl -X POST https://www.estacaido.com/api/v1/monitors/ \
-H "Authorization: Token your-api-token" \
-H "Content-Type: application/json" \
-d '{"name": "My Website", "domain": "example.com", "check_interval": 5}'
Sign up for free and get your API token to start integrating.
Sign Up Free Get API Token