raya.li API Documentation

Complete reference for all raya.li services, endpoints, and APIs

Service Overview

Base URLs

ServiceBase URLDescription
Mainhttps://raya.liMain website and tools directory
Monitorhttps://raya.li/monitorServer monitoring dashboard
DNShttps://dns.raya.liDNS management interface
IP Lookuphttps://ip.raya.liIP geolocation and threat intel
WHOIShttps://whois.raya.liDomain WHOIS lookup
Mailhttps://raya.li/mailMail server management
Webmailhttps://webmail.raya.liRoundcube webmail
Port Checkerhttps://ports.raya.liPort scanning service

Authentication

Most endpoints require authentication via:

Obtain a token via POST /monitor/api/auth/login

Monitor API

GET /monitor/api/servers Auth Required

List all monitored servers with current status.

Response

{ "servers": [ { "id": "server-id", "name": "Server Name", "hostname": "server.hostname.com", "status": "online|offline|warning", "last_seen": "2026-02-04T21:30:00Z", "metrics": { "cpu": 45.2, "memory": 67.5, "disk": 82.1 } } ] }
GET /monitor/api/servers/{id} Auth Required

Get detailed information about a specific server.

Parameters

NameTypeRequiredDescription
idstringYesServer ID
GET /monitor/api/metrics Auth Required

Get metrics for all servers or a specific server.

Query Parameters

NameTypeRequiredDescription
server_idstringNoFilter by server ID
hoursintegerNoHours of history (default: 24)
GET /monitor/api/alerts Auth Required

Get active and historical alerts.

POST /monitor/api/servers Auth Required

Register a new server for monitoring.

DNS API

GET /api/dns/zones Auth Required

List all DNS zones managed via Cloudflare.

GET /api/dns/zones/{zone_id}/records Auth Required

List all DNS records for a zone.

POST /api/dns/zones/{zone_id}/records Auth Required

Create a new DNS record.

Request Body

{ "type": "A", "name": "subdomain", "content": "1.2.3.4", "ttl": 1, "proxied": false }
PUT /api/dns/zones/{zone_id}/records/{record_id} Auth Required

Update an existing DNS record.

DELETE /api/dns/zones/{zone_id}/records/{record_id} Auth Required

Delete a DNS record.

Local DNS Server API

GET /monitor/api/dns/local/zones Auth Required

List local BIND9 DNS zones.

Mail API

GET /mail/api/status Auth Required

Get mail server status (Postfix, Dovecot, OpenDKIM).

{ "postfix": true, "dovecot": true, "dkim": true, "host": "54.253.254.188" }
GET /mail/api/users Auth Required

List all mail users.

POST /mail/api/users Auth Required

Create a new mail user.

Request Body

{ "username": "john", "domain": "raya.li", "password": "securepassword", "display_name": "John Doe", "quota": 1024 }
PUT /mail/api/users/{username}/password Auth Required

Update user password.

DELETE /mail/api/users/{username} Auth Required

Delete a mail user.

GET /mail/api/aliases Auth Required

List email aliases.

POST /mail/api/aliases Auth Required

Create an email alias.

Request Body

{ "source": "support@raya.li", "destination": "admin@raya.li" }
DELETE /mail/api/aliases/{source} Auth Required

Delete an email alias.

Tools API

IP Lookup

GET ip.raya.li/api/ip/lookup Public

Get geolocation and threat intelligence for an IP address.

Query Parameters

NameTypeRequiredDescription
ipstringYesIP address to lookup
POST ip.raya.li/api/ip/bulk Public

Bulk IP lookup (up to 100 IPs).

WHOIS Lookup

GET whois.raya.li/api/whois/{domain} Public

Get WHOIS information for a domain.

Port Checker

POST ports.raya.li/ports/api/scan Public

Scan ports on a target host.

Request Body

{ "target": "example.com", "ports": [80, 443, 22], "scan_type": "common|single|range|full" }
GET ports.raya.li/ports/api/check Public

Check a single port.

Query Parameters

NameTypeRequiredDescription
targetstringYesTarget host
portintegerYesPort number

Authentication API

POST /monitor/api/auth/login Public

Authenticate and receive a JWT token.

Request Body

{ "username": "admin", "password": "yourpassword" }

Response

{ "token": "eyJhbGciOiJIUzI1NiIs...", "user": { "id": 1, "username": "admin", "email": "admin@raya.li", "role": "admin" } }
POST /monitor/api/auth/logout Auth Required

Invalidate the current token.

GET /monitor/api/auth/me Auth Required

Get current user information.

POST /monitor/api/auth/2fa/setup Auth Required

Set up two-factor authentication.