POST /api/v3/lightning/devices/{lcuid}/router¶
Summary¶
POST /v3/lightning/devices/{lcuid}/router
Description¶
Store (or upsert) the provisioning record for a lightning device's router.
Tags: lightning
Parameters¶
Header Parameters¶
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
Authorization |
string |
✓ Yes | Bearer {AuthToken} |
|
Content-Type |
string |
✓ Yes | application/json |
|
Accept |
string |
✓ Yes | application/json |
|
AppIdV3 |
string |
✓ Yes | LCUID-LAP-********-****-****-****-************ |
Request Body¶
Required: Yes
Content Type: application/json¶
Schema¶
Type: object
Required fields: schema_version, hardware, router, network, wireguard
Properties:
schema_version(string) (required): Provisioning payload schema version (e.g. "1.0").hardware(object) (required): Hardware metadata for the router device. Type:object
Properties:
model(string): Hardware model identifier (e.g. "RUT241").serial_number(string): Optional serial number.imei(string): Optional cellular modem IMEI.iccid(string): Optional SIM ICCID.eid(string): Optional eSIM EID.inventory_id(string): Optional inventory tracking id.-
firmware_version(string): Optional firmware version string. -
router(object) (required): Router-level settings. Type:object
Properties:
admin_password(string): Router admin password (will be stored encrypted).hostname(string): Optional router hostname.admin_user(string): Optional admin username (defaults to "admin").-
site_id(string): Optional explicit site id; defaults to {device_number}-ROUTER. -
network(object) (required): Network configuration. Type:object
Properties:
wg_ip(string): WireGuard peer IP assigned to this router.lan_subnet(string): LAN /30 subnet assigned to this router.carrier(string): Optional cellular carrier name.apn(string): Optional cellular APN.-
wan_ip_observed(string): Optional observed WAN IP at provisioning time. -
wireguard(object) (required): WireGuard key material. Type:object
Properties:
public_key(string): WireGuard public key.-
private_key(string): WireGuard private key (will be stored encrypted). -
sms(object): Optional SMS settings. Type:object
Properties:
-
password(string): Optional SMS password (will be stored encrypted). -
provisioned_by(string): Optional free-form operator identifier.
Responses¶
Response: 200¶
Description: Sample Response
Content Type: application/json¶
Schema¶
Type: object
Properties:
success(boolean): truelightning_device_router(object) Type:object
Properties:
lcuid(string)site_id(string)status(integer)hardware_model(string)serial_number(string)imei(string)iccid(string)eid(string)inventory_id(string)carrier(string)apn(string)firmware_version(string)hostname(string)wg_ip(string)lan_subnet(string)rut_lan_ip(string)device_ip(string)wan_ip_observed(string)wg_public_key(string)admin_user(string)provisioned_at(string)provisioned_by(string)application_id(integer)lightning_device_id(integer)-
options(object) Type:objectProperties:
_init(array)raw_provisioning_payload(object) Type:object
Properties:
-
payload(object) Type:objectProperties:
sms(object) Type:object
Properties:
-
password(string) -
router(object) Type:object
Properties:
hostname(string)admin_user(string)-
admin_password(string) -
network(object) Type:object
Properties:
apn(string)wg_ip(string)carrier(string)-
lan_subnet(string) -
hardware(object) Type:object
Properties:
imei(string)iccid(string)model(string)serial_number(string)-
firmware_version(string) -
wireguard(object) Type:object
Properties:
public_key(string)-
private_key(string) -
provisioned_by(string) schema_version(string)
-
received_at(string)
-
created_at(string) updated_at(string)
Example Response¶
{
"success": true,
"lightning_device_router": {
"lcuid": "LCUID-LDRT-c151f4f4-8daf-4437-92a5-6fb8177a75dd",
"site_id": "LDN-47713-ROUTER",
"status": 1,
"hardware_model": "RUT241",
"serial_number": "SN",
"imei": "IMEI",
"iccid": "ICCID",
"eid": null,
"inventory_id": null,
"carrier": "TMobile",
"apn": "fast.t-mobile.com",
"firmware_version": "RUT2_R_00.07",
"hostname": "router-x",
"wg_ip": "10.250.218.111",
"lan_subnet": "10.140.218.188/30",
"rut_lan_ip": "10.140.218.189",
"device_ip": "10.140.218.190",
"wan_ip_observed": null,
"wg_public_key": "PUB",
"admin_user": "admin",
"provisioned_at": "2026-10-08T21:36:18.000000Z",
"provisioned_by": "tester@example.com",
"application_id": 26196,
"lightning_device_id": 20469,
"options": {
"_init": [],
"raw_provisioning_payload": {
"payload": {
"sms": {
"password": "SMSPWD"
},
"router": {
"hostname": "router-x",
"admin_user": "admin",
"admin_password": "SUPERSECRET"
},
"network": {
"apn": "fast.t-mobile.com",
"wg_ip": "10.250.218.111",
"carrier": "TMobile",
"lan_subnet": "10.140.218.188/30"
},
"hardware": {
"imei": "IMEI",
"iccid": "ICCID",
"model": "RUT241",
"serial_number": "SN",
"firmware_version": "RUT2_R_00.07"
},
"wireguard": {
"public_key": "PUB",
"private_key": "PRIV"
},
"provisioned_by": "tester@example.com",
"schema_version": "1.0"
},
"received_at": "2026-10-08T21:36:19+00:00"
}
},
"created_at": "2026-10-08T21:36:18.000000Z",
"updated_at": "2026-10-08T21:36:19.000000Z"
}
}
Example Implementations¶
Bash (cURL)¶
curl --request POST \
--url "https://api.lucit.app/api/v3/lightning/devices/{lcuid}/router" \
--header "Authorization: Bearer {AuthToken}" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "AppIdV3: LCUID-LAP-********-****-****-****-************"
JavaScript (Fetch API)¶
const url = "https://api.lucit.app/api/v3/lightning/devices/{lcuid}/router";
const headers = {
"Authorization": "Bearer {AuthToken}",
"Content-Type": "application/json",
"Accept": "application/json",
"AppIdV3": "LCUID-LAP-********-****-****-****-************"
};
fetch(url, {
method: "POST",
headers: headers
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
PHP (Guzzle)¶
<?php
require_once 'vendor/autoload.php';
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.lucit.app/api/v3/lightning/devices/{lcuid}/router', [
'headers' => [
'Authorization' => 'Bearer {AuthToken}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'AppIdV3' => 'LCUID-LAP-********-****-****-****-************',
]
]);
$body = $response->getBody();
$data = json_decode($body, true);
print_r($data);
Python (Requests)¶
import requests
import json
url = "https://api.lucit.app/api/v3/lightning/devices/{lcuid}/router"
headers = {
"Authorization": "Bearer {AuthToken}",
"Content-Type": "application/json",
"Accept": "application/json",
"AppIdV3": "LCUID-LAP-********-****-****-****-************"
}
response = requests.post(url, headers=headers)
print(response.json())