GET /api/v3/lightning/routers/wireguard-manifest¶
Summary¶
GET /v3/lightning/routers/wireguard-manifest
Description¶
Authoritative set of data needed to reconcile the WireGuard hub server.
Tags: lightning
Parameters¶
Query Parameters¶
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
status |
string |
✓ Yes | Comma-separated list of router statuses to include. Default: 1 (ACTIVE). | aliquid |
include_released_allocations |
boolean |
✓ Yes | Include released-but-unbound IP allocations. | 1 |
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-********-****-****-****-************ |
Responses¶
Response: 200¶
Description: Sample Response
Content Type: application/json¶
Schema¶
Type: object
Properties:
success(boolean): truegenerated_at(string): ISO8601 timestamp the manifest was generated.server(object) Type:object
Properties:
endpoint_host(string): WireGuard hub endpoint hostname.endpoint_port(integer): WireGuard hub endpoint UDP port.wg_supernet(string): The WireGuard peer IP supernet (CIDR).lan_supernet(string): The LAN supernet (CIDR) used for /30 blocks.-
lan_block_prefix_size(integer): Prefix size of each per-router LAN block (e.g. 30). -
peer_count(integer): Number of peer entries returned. peers(array): List of WireGuard peer entries.-
Array items:
objectType:objectProperties:
router_lcuid(string)site_id(string)lightning_device_lcuid(string)status(integer)wg_public_key(string)wg_ip(string)lan_subnet(string)allowed_ips(array)- Array items:
string hostname(string)provisioned_at(string)updated_at(string)
-
released_allocations(array): List of released IP allocations (only when include_released_allocations is true).
Example Response¶
{
"success": true,
"generated_at": "2026-10-08T21:36:23+00:00",
"server": {
"endpoint_host": "backbone-lightning-vpn-1.lcdevops.com",
"endpoint_port": 51820,
"wg_supernet": "10.70.0.0/16",
"lan_supernet": "10.71.0.0/16",
"lan_block_prefix_size": 30
},
"peer_count": 1,
"peers": [
{
"router_lcuid": "LCUID-LDRT-a4ad4ddb-7daf-4ee2-9cb8-135cb23cfd38",
"site_id": "LDN-47782-ROUTER",
"lightning_device_lcuid": "LCUID-LD-a0cfb616-c2dd-405c-8d2f-9c750e10a53e",
"status": 1,
"wg_public_key": "PUB",
"wg_ip": "10.250.73.178",
"lan_subnet": "10.141.73.200/30",
"allowed_ips": [
"10.250.73.178/32",
"10.141.73.200/30"
],
"hostname": "router-x",
"provisioned_at": "2026-10-08T21:36:23+00:00",
"updated_at": "2026-10-08T21:36:23+00:00"
}
],
"released_allocations": []
}
Example Implementations¶
JavaScript (Fetch API)¶
const url = new URL(
"https://api.lucit.app/api/v3/lightning/routers/wireguard-manifest"
);
const params = {
"status": "aliquid",
"include_released_allocations": "1",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Authorization": "Bearer {AuthToken}",
"Content-Type": "application/json",
"Accept": "application/json",
"AppIdV3": "LCUID-LAP-********-****-****-****-************",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());
PHP (Guzzle)¶
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://api.lucit.app/api/v3/lightning/routers/wireguard-manifest',
[
'headers' => [
'Authorization' => 'Bearer {AuthToken}',
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'AppIdV3' => 'LCUID-LAP-********-****-****-****-************',
],
'query' => [
'status'=> 'aliquid',
'include_released_allocations'=> '1',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Python (Requests)¶
import requests
import json
url = 'https://api.lucit.app/api/v3/lightning/routers/wireguard-manifest'
params = {
'status': 'aliquid',
'include_released_allocations': '1',
}
headers = {
'Authorization': 'Bearer {AuthToken}',
'Content-Type': 'application/json',
'Accept': 'application/json',
'AppIdV3': 'LCUID-LAP-********-****-****-****-************'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()
Example Responses¶
200 Response¶
{
"success": true,
"generated_at": "2026-10-08T21:36:23+00:00",
"server": {
"endpoint_host": "backbone-lightning-vpn-1.lcdevops.com",
"endpoint_port": 51820,
"wg_supernet": "10.70.0.0/16",
"lan_supernet": "10.71.0.0/16",
"lan_block_prefix_size": 30
},
"peer_count": 1,
"peers": [
{
"router_lcuid": "LCUID-LDRT-a4ad4ddb-7daf-4ee2-9cb8-135cb23cfd38",
"site_id": "LDN-47782-ROUTER",
"lightning_device_lcuid": "LCUID-LD-a0cfb616-c2dd-405c-8d2f-9c750e10a53e",
"status": 1,
"wg_public_key": "PUB",
"wg_ip": "10.250.73.178",
"lan_subnet": "10.141.73.200/30",
"allowed_ips": [
"10.250.73.178/32",
"10.141.73.200/30"
],
"hostname": "router-x",
"provisioned_at": "2026-10-08T21:36:23+00:00",
"updated_at": "2026-10-08T21:36:23+00:00"
}
],
"released_allocations": []
}