UptimeTea

API Documentation

The UptimeTea API is easy to use and free for all plans.

Get public status page

Returns a public status page by slug. No authentication required. Includes watcher statuses, uptime percentages, active incidents, and scheduled maintenance.

GET https://api.uptimetea.com/status/:slug

Response body

{
  "status_page": {
    "name": "My Service Status",
    "slug": "my-service",
    "custom_domain": null,
    "logo_url": null,
    "brand_color": "#3b82f6",
    "page_title": "Service Status",
    "show_branding": true
  },
  "watchers": [
    {
      "id": "uuid",
      "title": "Website",
      "url": "https://example.com",
      "current_status": "operational",
      "uptime_24h": 100,
      "uptime_7d": 99.5,
      "uptime_30d": 99.8
    }
  ],
  "incidents": [
    {
      "id": "uuid",
      "watcher_id": "uuid",
      "watcher_title": "Website",
      "status": "open",
      "started_at": "2024-01-15T10:00:00Z",
      "created_at": "2024-01-15T10:00:00Z"
    }
  ],
  "maintenance_windows": [
    {
      "id": "uuid",
      "title": "Server Upgrade",
      "description": "Upgrading database servers",
      "start_time": "2024-01-20T02:00:00Z",
      "end_time": "2024-01-20T04:00:00Z",
      "active": false
    }
  ]
}

Code examples

curl -X GET "https://api.uptimetea.com/status/$STATUS_PAGE_SLUG"
// Get public status page
const response = await fetch('https://api.uptimetea.com/status/STATUS_PAGE_SLUG');

const data = await response.json();
console.log(data);
# Get public status page
import requests

response = requests.get(
    'https://api.uptimetea.com/status/STATUS_PAGE_SLUG'
)

print(response.json())
// Get public status page
package main

import (
    "fmt"
    "io"
    "net/http"
)

func main() {
    req, _ := http.NewRequest("GET", "https://api.uptimetea.com/status/STATUS_PAGE_SLUG", nil)

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    data, _ := io.ReadAll(resp.Body)
    fmt.Println(resp.Status, string(data))
}
# Get public status page
require 'net/http'
require 'uri'

uri = URI('https://api.uptimetea.com/status/STATUS_PAGE_SLUG')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

request = Net::HTTP::Get.new(uri)

response = http.request(request)
puts response.code, response.body
<?php
// Get public status page
$ch = curl_init('https://api.uptimetea.com/status/STATUS_PAGE_SLUG');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
print_r(json_decode($response, true));
curl_close($ch);