AlertSleep is a modern SaaS platform for real-time website and uptime monitoring, built for founders, developers, and businesses that can't afford silent failures.
All API endpoints are rate-limited to 500 requests per minute per API token. Rate limit information is included in response headers:
X-RateLimit-Limit: Maximum requests allowedX-RateLimit-Remaining: Remaining requests in current windowRetry-After: Seconds to wait when rate limited (429 response)The API supports both JSON and XML responses. Use the Accept header to specify your preferred format:
application/json (default)All timestamps are returned in ISO 8601 format and are adjusted to the user's configured timezone.
Returns the complete profile information for the authenticated user, including:
{- "profile": {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "name": "John Doe",
- "email": "john@example.com",
- "timezone": "America/New_York",
- "plan_tier": "pro",
- "phone_prefix": "+1",
- "phone": "5551234567",
- "subscription_status": "active",
- "subscription_started_at": "2024-01-15T10:30:00-05:00",
- "subscription_ends_at": "2025-01-15T10:30:00-05:00",
- "limits": {
- "monitors": 50,
- "status_pages": 10,
- "check_interval_seconds": 60
}, - "usage": {
- "monitors": 12,
- "status_pages": 2
}
}
}Retrieves a paginated list of all monitors for the authenticated user. Monitors are returned with their current status, configuration, and recent statistics.
| page | integer >= 1 Default: 1 Page number for pagination |
| limit | integer [ 1 .. 100 ] Default: 50 Number of monitors per page |
| status | string Enum: "up" "down" "paused" "pending" Filter monitors by status |
| type | string Enum: "http" "tcp" "ping" "ssl" Filter monitors by type |
{- "monitors": [
- {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "user_id": "b1f8e9e8-f781-514d-b87b-295b86dc5f48",
- "friendly_name": "Production API",
- "type": "http",
- "method": "GET",
- "interval_seconds": 300,
- "status": "up",
- "headers": {
- "Authorization": "Bearer token123",
- "X-Custom-Header": "value"
}, - "settings": {
- "check_ssl": true,
- "timeout": 30,
- "allowed_status_codes": [
- 200,
- 201,
- 204
]
}, - "alert_settings": {
- "retry_threshold": 3
}, - "uptime_percentage": 99.95,
- "last_check_at": "2024-01-23T15:30:00-05:00",
- "last_response_time_ms": 245,
- "created_at": "2024-01-15T10:30:00-05:00",
- "updated_at": "2024-01-23T14:20:00-05:00"
}
], - "pagination": {
- "total": 150,
- "per_page": 50,
- "current_page": 1,
- "last_page": 3,
- "from": 1,
- "to": 50
}
}Creates a new monitor to track website or API uptime.
Plan Limits: The number of monitors you can create depends on your subscription plan.
Check Intervals: Minimum interval depends on plan tier:
| friendly_name required | string [ 1 .. 255 ] characters Human-readable name for the monitor |
| url required | string <uri> URL to monitor (must be valid and accessible) |
| type required | string Enum: "http" "tcp" "ping" "ssl" Type of monitor to create |
| method required | string Enum: "GET" "POST" "PUT" "PATCH" "DELETE" "HEAD" HTTP method (required for http type) |
| interval_seconds required | integer >= 30 Check interval in seconds. Minimum allowed interval depends on plan:
|
object or null Custom HTTP headers to include in requests | |
object or null | |
object or null |
{- "friendly_name": "My Website",
- "type": "http",
- "method": "GET",
- "interval_seconds": 300
}{- "monitor": {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "user_id": "b1f8e9e8-f781-514d-b87b-295b86dc5f48",
- "friendly_name": "Production API",
- "type": "http",
- "method": "GET",
- "interval_seconds": 300,
- "status": "up",
- "headers": {
- "Authorization": "Bearer token123",
- "X-Custom-Header": "value"
}, - "settings": {
- "check_ssl": true,
- "timeout": 30,
- "allowed_status_codes": [
- 200,
- 201,
- 204
]
}, - "alert_settings": {
- "retry_threshold": 3
}, - "uptime_percentage": 99.95,
- "last_check_at": "2024-01-23T15:30:00-05:00",
- "last_response_time_ms": 245,
- "created_at": "2024-01-15T10:30:00-05:00",
- "updated_at": "2024-01-23T14:20:00-05:00"
}
}Retrieves detailed information about a specific monitor, including:
| id required | string <uuid> Example: a0e7d8d7-e670-403c-a76a-184a75cb4e37 Unique identifier (UUID) of the monitor |
{- "monitor": {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "user_id": "b1f8e9e8-f781-514d-b87b-295b86dc5f48",
- "friendly_name": "Production API",
- "type": "http",
- "method": "GET",
- "interval_seconds": 300,
- "status": "up",
- "headers": {
- "Authorization": "Bearer token123",
- "X-Custom-Header": "value"
}, - "settings": {
- "check_ssl": true,
- "timeout": 30,
- "allowed_status_codes": [
- 200,
- 201,
- 204
]
}, - "alert_settings": {
- "retry_threshold": 3
}, - "uptime_percentage": 99.95,
- "last_check_at": "2024-01-23T15:30:00-05:00",
- "last_response_time_ms": 245,
- "created_at": "2024-01-15T10:30:00-05:00",
- "updated_at": "2024-01-23T14:20:00-05:00"
}
}Updates an existing monitor's configuration. All fields are optional. Only provided fields will be updated.
Note: Changing the interval may require a higher plan tier.
| id required | string <uuid> Example: a0e7d8d7-e670-403c-a76a-184a75cb4e37 Unique identifier (UUID) of the monitor |
| friendly_name | string [ 1 .. 255 ] characters Human-readable name for the monitor |
| url | string <uri> URL to monitor |
| method | string Enum: "GET" "POST" "PUT" "PATCH" "DELETE" "HEAD" HTTP method |
| interval_seconds | integer >= 30 Check interval in seconds (plan restrictions apply) |
| status | string Enum: "up" "paused" Monitor status. Use "paused" to temporarily disable monitoring, "up" to resume monitoring |
object or null Custom HTTP headers | |
object or null | |
object or null |
{- "friendly_name": "Updated Monitor Name",
- "interval_seconds": 600
}{- "monitor": {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "user_id": "b1f8e9e8-f781-514d-b87b-295b86dc5f48",
- "friendly_name": "Production API",
- "type": "http",
- "method": "GET",
- "interval_seconds": 300,
- "status": "up",
- "headers": {
- "Authorization": "Bearer token123",
- "X-Custom-Header": "value"
}, - "settings": {
- "check_ssl": true,
- "timeout": 30,
- "allowed_status_codes": [
- 200,
- 201,
- 204
]
}, - "alert_settings": {
- "retry_threshold": 3
}, - "uptime_percentage": 99.95,
- "last_check_at": "2024-01-23T15:30:00-05:00",
- "last_response_time_ms": 245,
- "created_at": "2024-01-15T10:30:00-05:00",
- "updated_at": "2024-01-23T14:20:00-05:00"
}
}Permanently deletes a monitor and all associated data including:
Warning: This action cannot be undone.
| id required | string <uuid> Example: a0e7d8d7-e670-403c-a76a-184a75cb4e37 Unique identifier (UUID) of the monitor |
{- "message": "Monitor deleted successfully"
}Retrieves the historical check results (pings) for a monitor. Results include response times, status codes, and failure reasons.
Performance Note: Requesting large time ranges may impact response time. Consider using pagination for optimal performance.
| id required | string <uuid> Example: a0e7d8d7-e670-403c-a76a-184a75cb4e37 Unique identifier (UUID) of the monitor |
| hours | integer [ 1 .. 8760 ] Default: 24 Example: hours=168 Number of hours of history to retrieve |
| limit | integer [ 1 .. 1000 ] Default: 100 Maximum number of pings to return |
| page | integer >= 1 Default: 1 Page number for pagination |
{- "pings": [
- {
- "id": "c2g9faf9-g892-625e-c98c-3a6c97ed6g59",
- "monitor_id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "checked_at": "2024-01-23T15:30:00-05:00",
- "status": "up",
- "response_time_ms": 245,
- "status_code": 200,
- "failure_reason": "Connection timeout after 30 seconds",
- "location": "us-east-1"
}
], - "pagination": {
- "total": 150,
- "per_page": 50,
- "current_page": 1,
- "last_page": 3,
- "from": 1,
- "to": 50
}
}Retrieves a paginated list of incidents for the authenticated user's monitors.
Incidents represent periods when a monitor was down or experiencing issues. Each incident includes:
| monitor_id | string <uuid> Example: monitor_id=a0e7d8d7-e670-403c-a76a-184a75cb4e37 Filter incidents by specific monitor ID |
| status | string Enum: "active" "resolved" Example: status=active Filter incidents by resolution status |
| limit | integer [ 1 .. 100 ] Default: 50 Number of incidents per page |
| page | integer >= 1 Default: 1 Page number for pagination |
{- "incidents": [
- {
- "id": "a0b7e636-6f5d-4a78-b86c-5f182bef333a",
- "monitor_id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "monitor": {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "friendly_name": "Production API",
- "type": "http",
- "status": "up"
}, - "started_at": "2024-01-23T14:30:00-05:00",
- "resolved_at": "2024-01-23T14:45:00-05:00",
- "duration_seconds": 900,
- "duration_formatted": "15m",
- "failure_reason": "Connection timeout",
- "notifications_sent": 2,
- "status": "resolved",
- "created_at": "2024-01-23T14:30:00-05:00"
}
], - "pagination": {
- "total": 150,
- "per_page": 50,
- "current_page": 1,
- "last_page": 3,
- "from": 1,
- "to": 50
}
}Retrieves detailed information about a specific incident.
Includes complete incident timeline, associated monitor details, and all relevant metadata for troubleshooting.
| id required | string <uuid> Example: a0b7e636-6f5d-4a78-b86c-5f182bef333a Unique identifier of the incident |
{- "incident": {
- "id": "a0b7e636-6f5d-4a78-b86c-5f182bef333a",
- "monitor_id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "monitor": {
- "id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "friendly_name": "Production API",
- "type": "http",
- "status": "up"
}, - "started_at": "2024-01-23T14:30:00-05:00",
- "resolved_at": "2024-01-23T14:45:00-05:00",
- "duration_seconds": 900,
- "duration_formatted": "15m",
- "failure_reason": "Connection timeout after 30 seconds",
- "notifications_sent": 2,
- "status": "resolved",
- "created_at": "2024-01-23T14:30:00-05:00"
}
}Retrieves comprehensive incident statistics for the authenticated user's monitors.
Statistics include:
Use Cases:
| days | integer [ 1 .. 365 ] Default: 30 Example: days=90 Number of days to include in statistics |
{- "stats": {
- "total_incidents": 45,
- "active_incidents": 2,
- "resolved_incidents": 43,
- "avg_resolution_time_minutes": 12.5,
- "total_downtime_minutes": 562.5,
- "period_days": 30,
- "incidents_by_monitor": [
- {
- "count": 15,
- "monitor_id": "a0e7d8d7-e670-403c-a76a-184a75cb4e37",
- "monitor_name": "Production API"
}, - {
- "count": 12,
- "monitor_id": "b1f8e9e8-f781-514d-b87b-295b86dc5f48",
- "monitor_name": "Main Website"
}, - {
- "count": 18,
- "monitor_id": "c2g9faf9-g892-625e-c98c-3a6c97ed6g59",
- "monitor_name": "Payment Gateway"
}
]
}
}