api integration guide
Network Infrastructure API Integration Guide
Date: 2026-01-07
Purpose: API-based automation for Tailscale, GL-iNet, NAS
Tailscale API
Local API (Recommended)
Endpoint: http://localhost:58427/localapi/v0/
Available Endpoints:
/status- Device status/prefs- Preferences (can modify hostname)/set- Set preferences
Example: Rename Device:
# Get current prefs curl http://localhost:58427/localapi/v0/prefs # Set hostname (requires auth) curl -X POST http://localhost:58427/localapi/v0/prefs \ -d '{"Hostname": "bluefly-m4"}'
Admin API (Cloud)
Endpoint: https://api.tailscale.com/api/v2/
Authentication: API token from Tailscale admin console
Endpoints:
/device- List devices/device/{deviceId}- Get/update device/tailnet/{tailnet}/devices/{deviceId}- Device management
Example: Rename Device via Admin API:
curl -X PATCH "https://api.tailscale.com/api/v2/device/{deviceId}" \ -H "Authorization: Bearer ${TAILSCALE_API_TOKEN}" \ -d '{"hostname": "bluefly-m4"}'
GL-iNet Router API
OpenWrt UCI API
Access: SSH to router, use UCI commands
Endpoints:
- UCI commands via SSH
- LuCI REST API (if enabled)
- Custom API endpoints (router-specific)
Example: Get WiFi SSIDs:
ssh root@glinet-router.tailcf98b3.ts.net "uci show wireless"
Example: Get Tailscale Status:
ssh root@glinet-router.tailcf98b3.ts.net "tailscale status"
GL-iNet Specific API
Check: Router admin UI Advanced API
Endpoints (if available):
/cgi-bin/api/wireless- WiFi configuration/cgi-bin/api/system- System information/cgi-bin/api/tailscale- Tailscale status
Synology NAS API
DSM REST API
Base URL: https://nas.tailcf98b3.ts.net:5001/webapi/
Authentication: Session-based (login required)
Endpoints:
/auth.cgi- Authentication/SYNO.Core.System- System information/SYNO.Core.Network- Network configuration/SYNO.Core.Wireless- WiFi (if applicable)/SYNO.Core.Service- Service management
Example: Get System Info:
# Login first SESSION=$(curl -X POST "https://nas.tailcf98b3.ts.net:5001/webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=login&account=admin&passwd=password&session=FileStation" | jq -r '.data.sid') # Get system info curl "https://nas.tailcf98b3.ts.net:5001/webapi/entry.cgi?api=SYNO.Core.System&version=1&method=info&_sid=${SESSION}"
SSH Access
Example: Get Tailscale Status:
ssh admin@nas.tailcf98b3.ts.net "tailscale status"
Implementation Scripts
Tailscale Device Rename (via Admin API)
Location: scripts/tailscale-rename-devices.sh
Requirements:
- Tailscale API token in environment
- Device IDs from admin console
GL-iNet Configuration (via SSH)
Location: scripts/glinet-configure.sh
Requirements:
- SSH access to router
- SSH key configured
NAS Discovery & Configuration
Location: scripts/nas-discovery.sh
Requirements:
- Network access to NAS
- DSM credentials (if needed)