Skip to content
Data Arta Sedaya (DASNET)

AS141674/Looking Glass

Ngawi, East Java, ID

Back to dataartasedaya.net.id

API reference

Every endpoint is unauthenticated, read-only and rate limited per source address. Diagnostic tools and the speedtest have separate budgets, so a throughput test cannot starve a traceroute. Responses are never cached.

GET/api/v1/health

Liveness plus a preflight check that every diagnostic binary is installed. Returns 503 with a list of what is missing rather than failing later on a user request.

curl -s https://lg.dataartasedaya.net.id/api/v1/health
GET/api/v1/meta

Node identity and capabilities: which tools this node can actually run, allowed DNS record types, file sizes and rate-cap profiles.

curl -s https://lg.dataartasedaya.net.id/api/v1/meta | jq .tools
GET/api/v1/stream

Runs a diagnostic tool and streams output as Server-Sent Events. Event names: meta, line, done, failure. Note failure, not error: EventSource reserves error for transport faults.

ParameterValues
toolping | traceroute | mtr | whois | host | hostcheck
targethostname, IP, prefix or ASN depending on the tool
familyauto | 4 | 6 (ping, traceroute, mtr)
typerecord type for tool=host, e.g. A, MX, TXT
curl -N 'https://lg.dataartasedaya.net.id/api/v1/stream?tool=ping&target=1.1.1.1'
GET/api/v1/mtr

Runs mtr and returns the parsed report as a single JSON document. Use this instead of the SSE stream when a partial result is worthless.

ParameterValues
targethostname or IP
familyauto | 4 | 6
curl -s 'https://lg.dataartasedaya.net.id/api/v1/mtr?target=1.1.1.1' | jq '.report.hubs'
GET/api/v1/asn

Batch origin-AS lookup for hop addresses, backed by Team Cymru over DNS and cached in memory. Private, loopback and unannounced addresses are omitted from the response.

ParameterValues
ipscomma-separated addresses, max 40 per request
curl -s 'https://lg.dataartasedaya.net.id/api/v1/asn?ips=8.8.4.4,1.1.1.1' | jq .results
GET/api/v1/download

Test file with a server-side rate cap. The body is random data so a compressing middlebox cannot inflate the measurement.

ParameterValues
size10MB | 50MB | 100MB | 500MB | 1GB
speeduncapped | 10mbps | 25mbps | 50mbps | 100mbps | 500mbps | 1gbps
curl -o /dev/null 'https://lg.dataartasedaya.net.id/api/v1/download?size=100MB&speed=50mbps'
GET/api/v1/st/ping

Empty 204 used to sample round-trip time and jitter. Does as close to nothing as possible, because any work here is measured as latency.

curl -o /dev/null -w '%{time_total}\n' https://lg.dataartasedaya.net.id/api/v1/st/ping
GET/api/v1/st/down

Unthrottled incompressible stream for throughput measurement.

ParameterValues
bytespositive integer, clamped to the server maximum
curl -o /dev/null 'https://lg.dataartasedaya.net.id/api/v1/st/down?bytes=26214400'
POST/api/v1/st/up

Reads the request body and discards it. Streamed, never buffered, never written to disk.

head -c 4194304 /dev/urandom | curl -X POST --data-binary @- https://lg.dataartasedaya.net.id/api/v1/st/up