I just wanted to share two undocumented API endpoints for changing the APN of a cellular uplink on a MX device.
I needed this function a few month ago and even the support told me that it is not possible, I reverse-engineered what the dashboard itself does to change the APN:
At first you pull the uplink id for the device with GET /api/v0/networks/$network/devices/$deviceserial/uplink/cellular
find the value for "id" in the returned json object and pass it to:
PUT api/v0/networks/$network/devices/$deviceserial/uplink/cellular/$uplinkid with this json object:
{"enabled":true,"apn":"your.apn.com\","id":"$uplinkid"}
[Update: Seems only to work for MX devices with an integrated cellular modem]