This document describes the legacy HTTP CGI-based API used by older SynAccess netBooter PDU models such as the NP-0201DU. This API is different from the newer SynLink Smart PDU REST API.
- Protocol: HTTP (HTTPS on DU models with port 443)
- Authentication: HTTP Basic Auth
- Default Credentials:
admin/admin - Default IP:
192.168.1.100 - Default Telnet Port: 23
- Default HTTP Port: 80
http://<ip>/cmd.cgi?<command> <arg1> <arg2> ...
Arguments are space-separated. URL encoding may be required for the space character (%20).
Use HTTP Basic Authentication:
curl -u admin:admin "http://192.168.1.100/cmd.cgi?\$A5"Or with explicit header:
curl -H "Authorization: Basic $(echo -n admin:admin | base64)" "http://192.168.1.100/cmd.cgi?\$A5"Returns the current status of all outlets, current draw, and temperature.
Request:
GET /cmd.cgi?$A5
Response Format:
xxxx,cccc,cccc,tt
or
xxxx,cccc,tt
Where:
x= Outlet state bits (rightmost is outlet 1)1= ON0= OFF
c= AC current draw in ampst= Temperature in Celsius
Example Response:
11,0.00,25
This indicates:
- Outlet 1: ON (rightmost bit)
- Outlet 2: ON
- Current: 0.00 amps
- Temperature: 25 C
Turn a specific outlet ON or OFF.
Request:
GET /cmd.cgi?$A3 <outlet> <state>
Arguments:
outlet- Outlet number (1-based)state-0= OFF,1= ON
Examples:
# Turn outlet 1 OFF
curl -u admin:admin "http://192.168.1.100/cmd.cgi?\$A3%201%200"
# Turn outlet 2 ON
curl -u admin:admin "http://192.168.1.100/cmd.cgi?\$A3%202%201"Power cycle a specific outlet (OFF then ON after configured delay).
Request:
GET /cmd.cgi?$A4 <outlet>
Arguments:
outlet- Outlet number (1-based)
Example:
# Reboot outlet 1
curl -u admin:admin "http://192.168.1.100/cmd.cgi?\$A4%201"Turn all outlets ON or OFF simultaneously.
Request:
GET /cmd.cgi?$A7 <state>
Arguments:
state-0= OFF,1= ON
Examples:
# Turn all outlets ON
curl -u admin:admin "http://192.168.1.100/cmd.cgi?\$A7%201"
# Turn all outlets OFF
curl -u admin:admin "http://192.168.1.100/cmd.cgi?\$A7%200"| Code | Description |
|---|---|
$A0 |
OK - Command executed successfully |
$AF |
Action failed or unknown command |
The same commands are available via Telnet (port 23) or serial connection (9600 8N1).
Commands use a different syntax over Telnet/Serial:
| CLI Command | Description |
|---|---|
pshow |
Show outlet status |
pset <n> <v> |
Set outlet n to state v (0=OFF, 1=ON) |
ps <v> |
Set all outlets to state v |
rb <n> |
Reboot outlet n |
gpset <n> <v> |
Set outlet group n to state v |
grb <n> |
Reboot outlet group n |
| CLI Command | Description |
|---|---|
nwshow |
Display network settings (IP, gateway, MAC) |
nwset |
Reset network interface |
dhcp <x> |
Set DHCP mode (1) or Static mode (0) |
ip <ip> <mask> |
Set static IP address and subnet mask |
gw <gw> |
Set gateway IP |
mac |
Display MAC address |
web <v> |
Enable (1) or disable (0) web access |
hp <port> |
Set HTTP port |
tp <port> |
Set Telnet port |
ver |
Show firmware version |
sysshow |
Show system information |
help |
Display help menu |
| Parameter | Value |
|---|---|
| Baud Rate | 9600 |
| Data Bits | 8 |
| Parity | None |
| Stop Bits | 1 |
| Flow Control | XON/XOFF |
Hold a pin in the "rst" hole while powering on the device.
Hold a pin in the "rst" hole for 10+ seconds, then release. This resets all settings including user accounts but does not affect outlet power states.
This legacy API applies to netBooter series PDUs including:
- NP-0201DU (2-outlet)
- NP-0801DU (8-outlet)
- NP-1601DU (16-outlet)
- Other NP-series models with similar firmware
| Feature | Legacy API | SynLink API |
|---|---|---|
| Endpoint | /cmd.cgi?$Ax |
/api/outlets, /api/device, etc. |
| Format | Custom text | JSON |
| Auth | HTTP Basic | Bearer Token or Session |
| HTTPS | DU models only (port 443) | Standard |
The synlink-py Python library requires the newer SynLink API and is not compatible with this legacy interface.
- SynAccess netBooter NP-0201DU Product Page
- SynAccess GitHub API Examples
- Source: netBooter PDU Series User Manual (1094_NPStartup_V20.pdf)
pdudaemon might already have this integrated: https://github.com/pdudaemon/pdudaemon/blob/main/pdudaemon/drivers/synaccess.py
And then labgrid integrates pdudeamon: https://github.com/bradfa/labgrid/blob/master/labgrid/driver/powerdriver.py#L402