Public API v1.0

Uptown Public API

Integrate website monitoring into your applications with our powerful REST API. Manage URLs, trigger checks, and get real-time status updates programmatically.

Powerful API Features

Everything you need to integrate monitoring into your workflow

Granular Security

Secure authentication using API tokens. Generate tokens with specific permissions for different use cases.

Real-time Monitoring

Trigger immediate checks, get status updates, and monitor response times in real-time.

Rate Limiting

Built-in rate limiting (100 requests/hour) to ensure fair usage and system stability.

Flexible Scheduling

Configure check intervals from 1 minute to 24 hours to match your monitoring needs.

Rich Analytics

Access detailed check history, uptime statistics, and performance metrics via API.

Global Monitoring

Monitor websites from multiple locations worldwide for comprehensive coverage.

Quick Start Guide

Get up and running with the Uptown API in minutes

1

Get Your API Token

Log into your Uptown account and navigate to Settings → Account → API Tokens. Create a new token with appropriate permissions.

2

Make Your First API Call

Test your API token by listing your existing URLs:

curl -H "Authorization: Bearer YOUR_API_TOKEN" \
     https://api.nanokoi.io/api/v1/api/urls/
3

Create Your First URL

Add a new URL to monitor using the API:

curl -X POST \
     -H "Authorization: Bearer YOUR_API_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"name":"My Site","url":"https://example.com","check_interval_minutes":5}' \
     https://api.nanokoi.io/api/v1/api/urls/

API Endpoints

Complete reference for all available endpoints

GET/api/v1/api/urls/
List all URLs

Response

[
  {
    "id": 1,
    "name": "My Website",
    "url": "https://example.com",
    "expected_status_code": 200,
    "check_interval_minutes": 5,
    "is_active": true,
    "created_at": "2025-01-21T10:00:00Z",
    "updated_at": "2025-01-21T10:00:00Z"
  }
]
POST/api/v1/api/urls/
Create a new URL

Request Body

{
  "name": "My Website",
  "url": "https://example.com",
  "expected_status_code": 200,
  "check_interval_minutes": 5,
  "is_active": true
}

Response (201 Created)

{
  "id": 1,
  "name": "My Website",
  "url": "https://example.com",
  "expected_status_code": 200,
  "check_interval_minutes": 5,
  "is_active": true,
  "created_at": "2025-01-21T10:00:00Z",
  "updated_at": "2025-01-21T10:00:00Z"
}
GET/api/v1/api/urls/{id}
Get specific URL

Parameters

id - URL ID (integer, required)

Response

{
  "id": 1,
  "name": "My Website",
  "url": "https://example.com",
  "expected_status_code": 200,
  "check_interval_minutes": 5,
  "is_active": true,
  "created_at": "2025-01-21T10:00:00Z",
  "updated_at": "2025-01-21T10:00:00Z"
}
PUT/api/v1/api/urls/{id}
Update URL

Parameters

id - URL ID (integer, required)

Request Body

{
  "name": "Updated Website Name",
  "check_interval_minutes": 10,
  "is_active": false
}

Response

{
  "id": 1,
  "name": "Updated Website Name",
  "url": "https://example.com",
  "expected_status_code": 200,
  "check_interval_minutes": 10,
  "is_active": false,
  "created_at": "2025-01-21T10:00:00Z",
  "updated_at": "2025-01-21T10:30:00Z"
}
DELETE/api/v1/api/urls/{id}
Delete URL

Parameters

id - URL ID (integer, required)

Response

204 No Content (successful deletion)

POST/api/v1/api/urls/{id}/check
Check URL manually

Parameters

id - URL ID (integer, required)

Response

{
  "url_id": 1,
  "is_successful": true,
  "status_code": 200,
  "response_time": 1.23,
  "error_message": null,
  "created_at": "2025-01-21T10:30:00Z"
}
GET/api/v1/api/urls/{id}/checks
Get check history

Parameters

id - URL ID (integer, required)

limit - Max checks to return (integer, optional, default: 100)

offset - Number of checks to skip (integer, optional, default: 0)

Response

[
  {
    "id": 1,
    "url_id": 1,
    "is_successful": true,
    "status_code": 200,
    "response_time": 1.23,
    "error_message": null,
    "created_at": "2025-01-21T10:30:00Z"
  }
]
GET/api/v1/api/urls/{id}/status
Get URL status

Parameters

id - URL ID (integer, required)

Response

{
  "url_id": 1,
  "status": "up",
  "last_check": "2025-01-21T10:30:00Z",
  "response_time": 1.23,
  "status_code": 200,
  "uptime_percentage": 99.9,
  "total_checks": 1000,
  "successful_checks": 999
}
POST/api/v1/api/urls/check-all
Check all URLs

Response

{
  "message": "Check initiated for all URLs",
  "urls_checked": 5,
  "successful_checks": 4,
  "failed_checks": 1
}

Ready to Get Started?

Start monitoring your websites programmatically with our powerful API. Get your API token and begin integrating today.

Public API - Uptown Website Monitoring