EST. 2026 — Notes from real server work SYSADMIN · SECURITY · AI · DIRECTADMIN Issue 01
THE SYSADMIN ALMANAC
Home / Tags / REST API
REST API

#REST API

12 articles
Network / VPN
Passing the Sandbox Doesn't Mean It Works — 7 False Signals
Linux

Passing the Sandbox Doesn't Mean It Works — 7 False Signals

The automated ordering system I wrote passed every command in a provider's sandbox, but almost everything the sandbox told me differed from reality, from response times and charges to accepted names and items that were created successfully but could not be found. Here are 7 false signals and how to write code that does not fall for them.

#api#rest-api#testing#debugging
9 min read·26 Oct
Bank Open API QR Payments — From Sandbox to Status Lifecycle
Web

Bank Open API QR Payments — From Sandbox to Status Lifecycle

A static PromptPay QR is easy to build yourself, but nothing tells you whether the customer has paid. This article walks through a bank's Open API sandbox, from requesting a token and issuing a dynamic QR to tracking REQUESTED/PAID/CANCELLED/VOIDED states and the requestDt trap that rejects requests even when the entire payload is correct.

#api#rest-api#payment#qrcode
10 min read·25 Oct
Building a Graph API Page App with Three Required Endpoints
Web

Building a Graph API Page App with Three Required Endpoints

When a backend needs to read and reply to Page messages on its own, the only proper route is to build an app and pass the platform's review. This article covers three endpoints the platform requires but people forget until they fail review, the correct way to verify incoming request signatures, and the steps to exchange a short-lived token for a Page token stored outside the web root.

#api#rest-api#php#web-security
10 min read·22 Oct
Reading ID Cards from the Web with a Localhost Agent
Hardware

Reading ID Cards from the Web with a Localhost Agent

Browsers cannot access smart card readers directly. A workable approach is to write a small agent that opens a port on localhost and let the web page call it. This article covers secure contexts, CORS preflight, port conflicts with other agents, PC/SC in SHARED mode, decoding TIS-620 manually, and the day antivirus flagged the program as a backdoor.

#hardware#cpp#windows#gui
11 min read·16 Oct
Cannot Delete Faces from a Terminal: API Returns notSupport
Hardware

Cannot Delete Faces from a Terminal: API Returns notSupport

The door's face recognition terminal advertises a command to delete faces from FDLib, but every variation I tried returned notSupport. People who had left could still scan their faces and get in. This article covers the dead ends, the approach that actually worked using UserInfo/Modify with the smallest possible body, and the two-way user registry sync that runs every night.

#hikvision#isapi#hardware#python
10 min read·15 Oct
Writing to DirectAdmin Through Panel Forms When the API Only Reads
DirectAdmin

Writing to DirectAdmin Through Panel Forms When the API Only Reads

Notes on letting a back-office app create and edit hosting packages in DirectAdmin when the official CMD_API only provides read operations, requiring POST requests directly to control panel forms, with verification rules that prohibit regex and two layers of kill switches disabled by default.

#directadmin#shared-host#php#laravel
9 min read·14 Oct
Registrar and Billing NS Mismatch: Audit All Three Sides First
Network

Registrar and Billing NS Mismatch: Audit All Three Sides First

A debugging log for "Wrong response from the server" when changing nameservers in a billing system, which failed only for domains with leftover glue IP data, followed by a three-way audit of the registrar, billing system, and actual DNS zones before I felt confident changing anything.

#dns#cloudflare#networking#rest-api
9 min read·13 Oct
Sending Automated Job Files to Telegram and the Bot API's 50 MB Limit
Linux

Sending Automated Job Files to Telegram and the Bot API's 50 MB Limit

Set up a small local service that takes files from scripts and sends them to me on Telegram, with outbound delivery only, no polling, and no incoming commands, along with the actual Bot API limits to know before writing it, including 50 MB per file, images over 10 MB that must be sent as documents, and the Thai text trap in curl on Windows.

#telegram#bot#automation#python
8 min read·24 Sep
Managing Site Switches Remotely with UniFi's Cloud Connector Proxy
Network

Managing Site Switches Remotely with UniFi's Cloud Connector Proxy

My workstation is in a different location from the site, with no VPN and no inbound ports open, but I still need to change VLANs per port, reserve fixed IPs, and track down failing cables. This article explains how Site Manager's connector proxy reaches the legacy API for both reads and writes without requesting a CSRF token, and the discipline needed when holding a key this powerful.

#networking#unifi#rest-api#api
10 min read·18 Sep
Set VLANs on a Hikvision Switch Using Its Web UI API
Network

Set VLANs on a Hikvision Switch Using Its Web UI API

A smart managed switch whose Switch ISAPI endpoints return 403 can still be scripted if you inspect what its web UI sends. This article turns that API into a VLAN configuration script with a dry-run before apply, covering the traps I actually hit, including different field names for reads and writes, CCTV mode forcing 10 Mbps, and a calculated PoE load that exceeds the switch's budget.

#networking#vlan#switch#poe
9 min read·17 Sep
Using an NVR to Reach Inaccessible Cameras with ISAPI and SDK
Network

Using an NVR to Reach Inaccessible Cameras with ISAPI and SDK

The cameras sit behind the NVR's second interface, and none are directly reachable. This article works through what the NVR's ISAPI can actually do, with 26 of 38 tested endpoints working, retrieves CCTV snapshots and RTSP through the NVR, finds when each channel last recorded, and falls back to HCNetSDK through ctypes to read device logs when ISAPI runs out of options.

#cctv#hikvision#nvr#isapi
11 min read·16 Sep
Control TP-Link Omada OC200 via REST API with Python
Network

Control TP-Link Omada OC200 via REST API with Python

A practical guide to logging into an OC200 controller through REST API v2 with Python — handling CSRF tokens, self-signed certs, fetching sites/devices/SSIDs/DHCP/port-forward rules, and writing back with PATCH, including the read-only fields that cause a nonzero errorCode

#omada#networking#api#python
8 min read·20 Jul