OTBR HTTP API
generate_thread_network
Initialize a network with random values, include PAN ID, Extended PAN ID and Network Key.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "generate_thread_network",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
export_thread_network
Export the network configuration, the configuration file format is passphrase|datasetactive
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "export_thread_network",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| filename | 
string | 
The name of the exported file | 
| path | 
string | 
The path of the exported file | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "filename": "thread_network.conf",
        "path": "/tmp/thread_network.conf"
    }
}
 
import_thread_network
If you use the method of importing configuration files, you need to call the upload interface to upload the file first, and the fixed path is/tmp/thread_network.conf.
Request parameters:
| Field | 
Type | 
Description | 
| Passphrase | 
string | 
Thread network Passphrase, a user-defined character string that serves as Commissioner Credential and | 
| ActiveDataset | 
string | 
Operational Dataset TLVs. | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "import_thread_network",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
get_status
Get the Thread network status
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_status",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| OpenThreadVersionAPI | 
string | 
OpenThread API version | 
| OTBRVersion | 
string | 
ot-br-posix version | 
| ThreadVersion | 
string | 
Thread Specification version, v1.1 , v1.2, v1.3 | 
| Network | 
object | 
Thread network information | 
| Network.Channel | 
number | 
Thread network channel. The value ranges from 11 to 26 | 
| Network.ExtPanId | 
string | 
Thread network Extended PAN ID. Its length is limited to 16 bytes of UTF-8 encoded characters | 
| Network.NetworkKey | 
string | 
Thread network key, which is 32 bytes long UTF-8 encoded characters | 
| Network.NetworkName | 
string | 
Thread network name. Its length is limited to 1 to 16 characters | 
| Network.PanId | 
number | 
Thread network PAN ID, value range: 0<= PAN ID <65535 or 0x0<= PAN ID<0xFFFF | 
| Network.PSKc | 
string | 
Thread network PSKc, PSKc is algorithmically generated by Passphrase, ExtendedPanId, and NetworkName, | 
| Network.Passphrase | 
string | 
Thread network Passphrase, a user-defined character string that serves as Commissioner Credential and | 
| Network.OnMeshPrefix | 
array | 
On-Mesh Prefix | 
| Network.LeaderData | 
object | 
Leader data | 
| Network.LeaderData.PartitionId | 
number | 
Partition ID of the leader node | 
| Network.LeaderData.Weighting | 
number | 
Weighting of the leader node | 
| Network.LeaderData.DataVersion | 
number | 
Data Version of the leader node | 
| Network.LeaderData.StableDataVersion | 
number | 
Stable Data Version of the leader node | 
| Network.LeaderData.LeaderRouterId | 
number | 
Leader Router ID of the leader node | 
| Network.IPv6 | 
array | 
IPv6 information | 
| Network.ActiveDataset | 
string | 
Operational Dataset TLVs. | 
| RCP | 
object | 
RCP information | 
| RCP.State | 
number | 
The state of RCP module, disabled=0, detached=1, child=2, router=3 or leader=4 | 
| RCP.RCPVersion | 
string | 
RCP version | 
| RCP.ExtAddress | 
string | 
IEEE 802.15.4 Extended Address | 
| RCP.EUI64 | 
string | 
The factory-assigned IEEE EUI-64 | 
| RCP.TXPower | 
number | 
The transmit power in dBm | 
| RCP.Rloc16 | 
number | 
Thread RLOC16 value | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
scan
Scan peripheral Thread devices.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "scan",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| ScanList | 
array | 
Scan list | 
| ScanList.IsJoinable | 
bool | 
Whether the Thread node is allowed to join | 
| ScanList.Channel | 
number | 
Channel of the Thread node | 
| ScanList.Rssi | 
number | 
Signal strength of the Thread node | 
| ScanList.Lqi | 
number | 
Link quality indicator of the Thread node | 
| ScanList.NetworkName | 
string | 
Network name of the Thread node | 
| ScanList.ExtPanId | 
string | 
Extended PAN ID of the Thread node | 
| ScanList.PanId | 
number | 
PAN ID of the Thread node | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
set_config
Create a new Thread network or modify the current Thread network.
Request parameters:
| Field | 
Type | 
Description | 
| NetworkName | 
string | 
Thread network name, its length is limited to 1~16 characters | 
| ExtPanId | 
string | 
Thread Network Extended PAN ID | 
| PanId | 
number | 
Thread network PAN ID | 
| Passphrase | 
string | 
Thread network Passphrase, a user-defined character string that serves as Commissioner Credential and | 
| NetworkKey | 
string | 
Thread network key, its length is 32 bytes UTF-8 encoded characters | 
| Channel | 
number | 
Thread network channel, the value range is 11-26 | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_config",
        {
            "NetworkName": "OpenThread",
            "Passphrase": "654321",
            "PanId": "0x1234",
            "ExtPanId": "1122334455667788",
            "NetworkKey": "7fa541ccdcece042b07ac34c98620a4c",
            "Channel": "13"
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
set_txpower
Set the transmit power of the Thread device.
Request parameters:
| Field | 
Type | 
Description | 
| TXPower | 
number | 
The transmit power in dBm | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_txpower",
        {
            "TXPower": 8
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
stop
Stop the Thread network of the device.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "stop",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
start
Start the Thread network
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "start",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
join
Join the Thread network.
Request parameters:
| Field | 
Type | 
Description | 
| CredentialType | 
string | 
Supported values are 'networkKeyType' and 'pskdType' | 
| NetworkKey | 
string | 
Thread network key, which is 32 bytes long UTF-8 encoded characters | 
| PSKd | 
string | 
The Joiner Credential is a device-specific string of all uppercase alphanumeric characters | 
| Channel | 
number | 
Thread network channel | 
| PanId | 
number | 
Thread network PAN ID | 
| ExtendedPanId | 
number | 
Thread network ExtendedPanId | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "join",
        {
            "CredentialType": "networkKeyType",
            "NetworkKey": "1ed99ba54e1b2bbbfe36b576cecaca8f",
            "Channel": 11,
            "PanId": "0x3d32"
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
add_joiner
Add Joiners.
Request parameters:
| Field | 
Type | 
Description | 
| PSKd | 
string | 
The Joiner Credential is a device-specific string of all uppercase alphanumeric characters | 
| Timeout | 
number | 
Joiner timeout in seconds. Default 120s | 
| EUI64 | 
string | 
The IEEE EUI-64 of the Joiner or '*' to match any Joiner. | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "add_joiner",
        {
            "PSKd": "654321",
            "EUI64": "9483c4ea62f8cfcd",
            "Timeout": 120
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
export_joiner_list
Export the Joiner information to /tmp/thread_devices, the file is a cvs format, and its data format is 'Joiner EUI64,Joiner Credential'.
Request parameters:
| Field | 
Type | 
Description | 
| Timeout | 
number | 
Joiner timeout in seconds. Default 120s | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "export_joiner_list",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
import_joiner_list
Import Joiner list.
Request parameters:
| Field | 
Type | 
Description | 
| Timeout | 
number | 
Joiner timeout in seconds. Default 120s | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "import_joiner_list",
        {
            "Timeout": 120
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
rejoin_all
Start Commissining and add Joiner entry.
Request parameters:
| Field | 
Type | 
Description | 
| Timeout | 
number | 
Joiner timeout in seconds. Default 120s | 
| Type | 
number | 
Supported values are 1: Only Timeout, 2: Only Joined, 3: ALL | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "rejoin_all",
        {
            "Timeout": 120,
            "Type": 3
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. -1:Invalied parameter | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
remove_joiner_list
Delete Joiner entries.
Request parameters:
| Field | 
Type | 
Description | 
| DeviceList | 
array | 
DeviceList | 
| DeviceList[x] | 
string | 
Joiner EUI64 | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "remove_joiners",
        {
            "DeviceList": [
                "9483c4ea62f8cfcd",
                "9483c4ea62f8cfcf"
            ]
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
get_joiner_list
Get the Joiner list.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_joiner_list",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| DeviceList | 
array | 
DeviceList | 
| DeviceList.EUI64 | 
string | 
Joiner EUI64 | 
| DeviceList.Status | 
number | 
Status of new devices not connected to the network. Supported values are 0: Reday to Join, 1: Joining, 2: Joined, 3: Timeout | 
| DeviceList.Timeout | 
number | 
Joiner network access timeout | 
| DeviceList.AddTime | 
number | 
Timestamp added | 
| DeviceList.JoinedTime | 
number | 
The Joiner successfully obtained the credential timestamp | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "DeviceList": [
            {
                "Timeout": 120,
                "PSKd": "AAAAAA",
                "Status": 0,
                "EUI64": "94deb8fffef6e101"
            }
        ]
    }
}
 
get_network_data
Get Thread network topology map data.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_network_data",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| ExtAddress | 
string | 
IEEE 802.15.4 Extended Address | 
| Name | 
string | 
The name of the user-defined Thread network node. | 
| Rloc16 | 
number | 
The Thread RLOC16 value. | 
| Rloc16s | 
string | 
The Thread RLOC16 value in hex string. | 
| Version | 
string | 
Thread version. | 
| IsBorderRouter | 
bool | 
IsBorderRouter. | 
| IsLeader | 
bool | 
IsLeader. | 
| IsThisDevice | 
bool | 
IsThisDevice. | 
| NeighborRouterTable | 
object | 
NeighborRouterTable. | 
| NeighborRouterTable.Name | 
string | 
NeighborRouterTable.Name | 
| NeighborRouterTable.ExtAddress | 
string | 
NeighborRouterTable.ExtAddress | 
| NeighborRouterTable.Rloc16 | 
number | 
NeighborRouterTable.Rloc16 | 
| NeighborRouterTable.ConnectionTime | 
string | 
NeighborRouterTable.ConnectionTime | 
| NeighborRouterTable.FrameErrorRate | 
object | 
NeighborRouterTable.FrameErrorRate | 
| NeighborRouterTable.LastRssi | 
object | 
NeighborRouterTable.LastRssi | 
| NeighborRouterTable.LinkMargin | 
object | 
NeighborRouterTable.LinkMargin | 
| NeighborRouterTable.MessageErrorRate | 
object | 
NeighborRouterTable.MessageErrorRate | 
| NeighborRouterTable.Version | 
object | 
NeighborRouterTable.Version | 
| ChildTable | 
object | 
ChildTable | 
| ChildTable.ExtAddress | 
string | 
ChildTable.ExtAddress | 
| ChildTable.Name | 
number | 
ChildTable.Name | 
| ChildTable.Age | 
number | 
ChildTable.Age | 
| ChildTable.AvgRssi | 
number | 
ChildTable.AvgRssi | 
| ChildTable.ConnectionTime | 
string | 
ChildTable.ConnectionTime | 
| ChildTable.CslChannel | 
number | 
ChildTable.CslChannel | 
| ChildTable.CslPeriod | 
number | 
ChildTable.CslPeriod | 
| ChildTable.CslSync | 
number | 
ChildTable.CslSync | 
| ChildTable.DeviceType | 
number | 
ChildTable.DeviceType | 
| ChildTable.FrameErrorRate | 
number | 
ChildTable.FrameErrorRate | 
| ChildTable.MessageErrorRate | 
object | 
ChildTable.MessageErrorRate | 
| ChildTable.IP6AddressList | 
object | 
ChildTable.IP6AddressList | 
| ChildTable.IsBorderRouter | 
object | 
ChildTable.IsBorderRouter | 
| ChildTable.IsThisDevice | 
object | 
ChildTable.IsThisDevice | 
| ChildTable.LastRssi | 
object | 
ChildTable.LastRssi | 
| ChildTable.LinkMargin | 
object | 
ChildTable.LinkMargin | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
get_leader_data
Get Thread Leader data.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_leader_data",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| LeaderData | 
object | 
Leader node information in the Thread network | 
| LeaderData.PartitionId | 
number | 
Partition ID of the leader node | 
| LeaderData.Weighting | 
number | 
Weighting of the Leader node | 
| LeaderData.DataVersion | 
number | 
Data Version of the Leader node | 
| LeaderData.StableDataVersion | 
number | 
Stable Data Version of the Leader node | 
| LeaderData.LeaderRouterId | 
number | 
Leader Router ID of the Leader node | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
get_buffer_info
Get Buffer Info.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_buffer_info",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| 6loReassemblyQueue | 
string | 
6loReassemblyQueue | 
| 6loSendQueue | 
string | 
6loSendQueue | 
| ApplicationCoapQueue | 
string | 
ApplicationCoapQueue | 
| CoapQueue | 
string | 
CoapQueue | 
| CoapSecureQueue | 
string | 
CoapSecureQueue | 
| FreeBuffers | 
string | 
FreeBuffers | 
| Ip6Queue | 
string | 
Ip6Queue | 
| MaxUsedBuffers | 
string | 
MaxUsedBuffers | 
| MleQueue | 
string | 
MleQueue | 
| MplQueue | 
string | 
MplQueue | 
| TotalBuffers | 
string | 
TotalBuffers | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
export_network_data
Export Thread network diagnostic data
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "export_network_data",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| file_path | 
string | 
The file path | 
| file_name | 
string | 
The file name | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "file_path": "/js/thread_network_diagnostics.json",
        "file_name": "thread_network_diagnostics.json"
    }
}
 
get_neighbor_list
desc
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_neighbor_list",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| NeighborNumber | 
number | 
The number of neighbor | 
| NeighborList | 
array | 
NeighborList | 
| NeighborList.Role | 
string | 
Neighbor network node roles,'R' or 'C' | 
| NeighborList.Rloc16 | 
number | 
RLOC16 | 
| NeighborList.Age | 
number | 
Time last heard | 
| NeighborList.AvgRssi | 
number | 
Average RSSI | 
| NeighborList.LastRssi | 
number | 
Last observed RSSI | 
| NeighborList.Mode | 
object | 
the Thread Device Mode value: - -no flags set (rx-off-when-idle, minimal Thread device, stable network data) | 
| NeighborList.ExtAddress | 
string | 
IEEE 802.15.4 Extended Address | 
| NeighborList.LinkQualityIn | 
number | 
Link Quality In | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
get_bbr_status
Get Backbone Router status information
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_bbr_status",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| Enable | 
bool | 
Whether to enable the BackBone Router | 
| State | 
string | 
Represents the Backbone Router Status, the values of State are Disabled, Secondary, Primary | 
| MlrTimeout | 
number | 
The minimum value of Multicast Listener Registration Timeout (in seconds) is 300s, and the maximum value is 24d | 
| SequenceNumber | 
number | 
Sequence Number | 
| ReregistrationDelay | 
number | 
Reregistration Delay (in seconds) | 
| Jitter | 
number | 
Jitter | 
| Ifname | 
string | 
Current backboneIfName | 
| Ifnames | 
array | 
Supported backboneIfName | 
| Ifnames[x] | 
string | 
Supported backboneIfName | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "State": "Primary",
        "Ifname": "br-lan",
        "SequenceNumber": 5,
        "Ifnames": [
            "eth0",
            "br-lan"
        ],
        "MlrTimeout": 3600,
        "Jitter": 5,
        "Error": 0,
        "ReregistrationDelay": 5
    }
}
 
set_bbr_config
Set Backbone router config
Request parameters:
| Field | 
Type | 
Description | 
| MlrTimeout | 
number | 
The minimum value of Multicast Listener Registration Timeout (in seconds) is 300s, and the maximum value is 24d | 
| SequenceNumber | 
number | 
Sequence Number | 
| ReregistrationDelay | 
number | 
Reregistration Delay (in seconds) | 
| Jitter | 
number | 
Jitter | 
| IfName | 
string | 
backboneIfName | 
| Enable | 
bool | 
Enable Backbone router function | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_bbr_config",
        {
            "MlrTimeout": 3500,
            "SequenceNumber": 30,
            "ReregistrationDelay": 1000,
            "Jitter": 10
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
set_commissioning
Set commissioner status
Request parameters:
| Field | 
Type | 
Description | 
| Enable | 
bool | 
Enable Commissioner | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_commissioner",
        {
            "Enable": true
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
get_srp_server_service
Get SRP Server Service.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_srp_server_service",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| Services | 
array | 
SRP Services | 
| Services.InstanceName | 
string | 
The service instance name | 
| Services.Deleted | 
bool | 
If Deleted is true then no other information | 
| Services.Subtypes | 
string | 
The service subtypes | 
| Services.Port | 
number | 
The service port number | 
| Services.Priority | 
number | 
The service priority | 
| Services.Weight | 
number | 
The service weight | 
| Services.Ttl | 
number | 
The service ttl | 
| Services.TXT | 
array | 
The service txt record | 
| Services.Host | 
string | 
The service host name | 
| Services.Address | 
array | 
The service host address | 
| Services.Lease | 
number | 
The service lease | 
| Services.KeyLease | 
number | 
The service key-lease | 
| ServicesNumber | 
number | 
The service number | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
get_srp_server_config
Get SRP Server config.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_srp_server_config",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| Enable | 
bool | 
Enable SRP Server | 
| DomainName | 
string | 
The SRP Server domain name | 
| MinLease | 
number | 
The minimum LEASE interval in seconds. mMinLease <= mMaxLease, mMinLease <= mMinKeyLease | 
| MaxLease | 
number | 
The maximum LEASE interval in seconds. mMaxLease <= mMaxKeyLease | 
| MinKeyLease | 
number | 
The minimum KEY-LEASE interval in seconds. mMinKeyLease <= mMaxKeyLease | 
| MaxKeyLease | 
number | 
The maximum KEY-LEASE interval in seconds | 
| SeqNum | 
number | 
The sequence number used with anycast address mode. | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message. | 
Response sample:
{
    "jsonrpc": "2.0",
    "id": 1,
    "result": {}
}
 
set_srp_server_config
Set SRP Server config.
Request parameters:
| Field | 
Type | 
Description | 
| Enable | 
bool | 
Enable SRP Server | 
| DomainName | 
string | 
The SRP Server domain name | 
| MinLease | 
number | 
The minimum LEASE interval in seconds. mMinLease <= mMaxLease, mMinLease <= mMinKeyLease | 
| MaxLease | 
number | 
The maximum LEASE interval in seconds. mMaxLease <= mMaxKeyLease | 
| MinKeyLease | 
number | 
The minimum KEY-LEASE interval in seconds. mMinKeyLease <= mMaxKeyLease | 
| MaxKeyLease | 
number | 
The maximum KEY-LEASE interval in seconds | 
| SeqNum | 
number | 
The sequence number used with anycast address mode. The sequence number is included in "DNS/SRP Service Anycast Address" entry published in the Network Data.Front end does not need to display | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_srp_server_config",
        {
            "Enable": true,
            "DomainName": "default.service.arpa.",
            "MinLease": 1800,
            "MaxLease": 86400,
            "MinKeyLease": 86400,
            "MaxKeyLease": 1209600
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
get_nat64_status
Get NAT64 Status
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_nat64_status",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| Enable | 
bool | 
Enable NAT64 | 
| PrefixManager | 
string | 
show the state of NAT64 PrefixManager [Disable,NotRunning,Idle,Active] | 
| Translator | 
string | 
show the state of NAT64 translator [Disable,NotRunning,Active] | 
| Cidr | 
string | 
show the CIDR of NAT64 | 
| Mappings | 
array | 
Mappings | 
| Mappings.ipv4 | 
string | 
show the IPv4 value | 
| Mappings.ipv6 | 
string | 
show the IPv6 value | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "Translator": "Active",
        "PrefixManager": "Active",
        "Mappings": [
            {
                "ipv6": "fda1:20d6:69d5:1:24b6:6d65:7a84:d94f",
                "ipv4": "192.168.255.254"
            }
        ],
        "Enable": true,
        "Cidr": "192.168.255.0/24"
    }
}
 
set_nat64_config
Set NAT64 config.
Request parameters:
| Field | 
Type | 
Description | 
| Enable | 
bool | 
Enable NAT64 Translator | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_nat64_config",
        {
            "Enable": true
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
set_device_info
Set device info, it will show in topology.
Request parameters:
| Field | 
Type | 
Description | 
| Name | 
string | 
Name | 
| ExtAddress | 
string | 
ExtAddress | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "set_device_info",
        {
            "ExtAddress": "1241B519B4A43AA7",
            "Name": "test",
            "Location": "Bedroom"
        }
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
force_to_leader
Try to force the device role from router to leader.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "force_to_leader",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
set_keep_refresh
Set keep refresh.
Request parameters:
| Field | 
Type | 
Description | 
| Enable | 
string | 
Enable auto refresh. | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "keep_refresh",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}
 
get_keep_refresh_config
Get keep refresh config.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_keep_refresh_state",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| Enable | 
string | 
Indicates the current automatic refresh status. | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "Enable": false
    }
}
 
get_device_list
Set keep refresh.
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "get_device_list",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
| AddTime | 
number | 
AddTime. | 
| EUI64 | 
string | 
EUI64 | 
| ExtAddress | 
string | 
IEEE 802.15.4 Extended Address | 
| IP6AddressList | 
object | 
IP6AddressList | 
| IsActiveNat64Translator | 
bool | 
IsActiveNat64Translator. | 
| IsActiveSrpServer | 
bool | 
IsActiveSrpServer. | 
| IsBorderRouter | 
bool | 
IsBorderRouter. | 
| IsChild | 
bool | 
IsChild. | 
| IsLeader | 
bool | 
IsLeader. | 
| IsOnline | 
bool | 
IsOnline. | 
| IsThisDevice | 
bool | 
IsThisDevice. | 
| LastUpdate | 
number | 
LastUpdate. | 
| Location | 
string | 
Location. | 
| Mode | 
object | 
Mode | 
| Name | 
string | 
The name of the user-defined Thread network node. | 
| ProductName | 
string | 
ProductName. | 
| Rloc16 | 
number | 
The Thread RLOC16 value. | 
| Rloc16s | 
string | 
The Thread RLOC16 value in hex string. | 
| SrpService | 
object | 
SrpService | 
| VendorName | 
string | 
VendorName. | 
| Version | 
string | 
Thread version. | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "DeviceList": [
            {
                "IsBorderRouter": true,
                "IsLeader": true,
                "LastUpdate": 1731030619,
                "IsActiveSrpServer": true,
                "DeviceType": "",
                "IsThisDevice": true,
                "IP6AddressList": [
                    "fd87:cda8:1a3a:c293:0:ff:fe00:fc11",
                    "fd87:cda8:1a3a:c293:0:ff:fe00:fc10",
                    "fd87:cda8:1a3a:c293:0:ff:fe00:fc38",
                    "fd65:5f4c:3d3:1:ef79:4fcf:46b:a654",
                    "fd87:cda8:1a3a:c293:0:ff:fe00:fc00",
                    "fd87:cda8:1a3a:c293:0:ff:fe00:800",
                    "fd87:cda8:1a3a:c293:b45a:1415:2518:520b",
                    "fe80:0:0:0:80a9:a12b:d431:9816"
                ],
                "Mode": {
                    "RxOnWhenIdle": 1,
                    "NetworkData": 1,
                    "DeviceType": 1
                },
                "Rloc16": 2048,
                "VendorName": "GL.iNET Inc.",
                "ProductName": "S200",
                "AddTime": 1730970907,
                "Version": "v1.3.0",
                "IsActiveNat64Translator": true,
                "Rloc16s": "0x0800",
                "IsOnline": true,
                "Name": "S200",
                "SrpService": [],
                "Location": "",
                "ExtAddress": "82A9A12BD4319816",
                "IsChild": false,
                "EUI64": "DC8E95FFFE90C50A"
            }
        ]
    }
}
 
remove_device_list
Remove device list.
Request parameters:
| Field | 
Type | 
Description | 
| device_list | 
object | 
The device_list value is an array of IEEE 802.15.4 Extended Address string. | 
Request sample:
curl -k http://127.0.0.1/rpc -H 'glinet: 1' -d '
{
    "jsonrpc": "2.0",
    "id": "0",
    "method": "call",
    "params": [
        "",
        "otbr",
        "remove_device_list",
        {}
    ]
}'
 
Response parameters:
| Field | 
Type | 
Description | 
err_code    option | 
number | 
Error code. | 
err_msg    option | 
string | 
Error message | 
Response sample:
{
    "id": "0",
    "jsonrpc": "2.0",
    "result": {
        "err_code": 0
    }
}