Skip to main content
All website endpoints require authentication.

register

Register a new website to monitor for uptime.

Input Parameters

url
string
required
Website URL to monitor. Must use HTTP or HTTPS protocol.
name
string
Optional display name for the website (max 255 characters)

Response

id
string
Unique identifier for the website
url
string
The monitored URL
name
string | null
Display name for the website
isActive
boolean
Whether the website is actively being monitored
userId
string
Owner’s user ID
createdAt
date
When the website was registered
updatedAt
date
Last update timestamp
const website = await trpc.website.register.mutate({
  url: "https://example.com",
  name: "My Website"
});

console.log(website.id);

Error Codes

  • CONFLICT - Website URL already registered for this user

list

Get all active websites for the authenticated user.

Response

websites
array
Array of website objects
total
number
Total number of websites
const result = await trpc.website.list.query();

console.log(`Total websites: ${result.total}`);
result.websites.forEach(site => {
  console.log(`${site.name}: ${site.url}`);
});

get

Get details for a specific website by ID.

Input Parameters

id
string
required
Website ID

Response

Returns a website object (same structure as in register).
const website = await trpc.website.get.query({
  id: "clx1234567890"
});

console.log(website.url);

Error Codes

  • NOT_FOUND - Website not found or doesn’t belong to user

update

Update website details.

Input Parameters

id
string
required
Website ID to update
url
string
New URL (must use HTTP/HTTPS)
name
string
New display name (max 255 characters)
isActive
boolean
Enable or disable monitoring

Response

Returns the updated website object.
const website = await trpc.website.update.mutate({
  id: "clx1234567890",
  name: "Updated Name",
  isActive: false
});

Error Codes

  • NOT_FOUND - Website not found or doesn’t belong to user

delete

Soft delete a website (sets isActive to false).

Input Parameters

id
string
required
Website ID to delete

Response

success
boolean
Always returns true on success
const result = await trpc.website.delete.mutate({
  id: "clx1234567890"
});

console.log(result.success); // true

Error Codes

  • NOT_FOUND - Website not found or doesn’t belong to user

status

Get status history and current status for all user’s websites.

Input Parameters

viewMode
enum
default:"per-check"
View mode for status data:
  • per-check - Returns up to 90 most recent individual checks
  • per-day - Returns aggregated daily data for last 31 days

Response

websites
array
Array of website status objects
const result = await trpc.website.status.query({
  viewMode: "per-check"
});

result.websites.forEach(site => {
  console.log(`${site.websiteName}: ${site.currentStatus?.status}`);
  console.log(`Response time: ${site.currentStatus?.responseTimeMs}ms`);
});

Build docs developers (and LLMs) love