Agreed, my EAP-245 has been running a solid month with no reboots. Reboots should only be done if the device is actually malfunctioning or performing particularly poorly (and you've confirmed it's not a client-side issue!).
If you do need to schedule AP reboots programmatically, the following curl request might be a good starting point (this is what's called when you click the "single reboot" button on a given AP and confirm the dialog):
Three important points:
curl 'https://EAPC:8043/monitor/rebootAp' -H 'Cookie: TPEAP_SESSIONID=00001111-2222-3333-4444-555566667777; gsScrollPos=; TPEAP_LANGUAGE=en' \
-H 'Origin: https://EAPC:8043' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.8' \
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: */*' -H 'Referer: https://EAPC:8043/home.html' \
-H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --data 'apId=000000000000000000000000'
* EAPC is your EAP Controller hostname/IP
* 000000000000000000000000 is your AP ID; you may need to examine requests using your browser's inspector to get this, as I don't see any place to find it in the UI.
* You will need to generate a session ID cookie (TPEAP_SESSIONID) prior to sending this request to use in the request.