GET/api/networks

List all Networks

Returns a list of all networks

Request

GET
/api/networks
curl -X GET https://api.netbird.io/api/networks \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

[  {  "id": "chacdk86lnnboviihd7g",  "routers": [  "ch8i4ug6lnn4g9hqv7m0"  ],  "routing_peers_count": 2,  "resources": [  "ch8i4ug6lnn4g9hqv7m1"  ],  "policies": [  "ch8i4ug6lnn4g9hqv7m2"  ],  "name": "Remote Network 1",  "description": "A remote network that needs to be accessed"  } ] 

POST/api/networks

Create a Network

Creates a Network

Request-Body Parameters

  • Name
    name
    Type
    string
    Required
    required
    Enum
    Description

    Network name

  • Name
    description
    Type
    string
    Required
    optional
    Enum
    Description

    Network description

Request

POST
/api/networks
curl -X POST https://api.netbird.io/api/networks \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Token <TOKEN>' \ --data-raw '{  "name": "Remote Network 1",  "description": "A remote network that needs to be accessed" }' 

Response

{  "id": "chacdk86lnnboviihd7g",  "routers": [  "ch8i4ug6lnn4g9hqv7m0"  ],  "routing_peers_count": 2,  "resources": [  "ch8i4ug6lnn4g9hqv7m1"  ],  "policies": [  "ch8i4ug6lnn4g9hqv7m2"  ],  "name": "Remote Network 1",  "description": "A remote network that needs to be accessed" } 

GET/api/networks/{networkId}

Retrieve a Network

Get information about a Network

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request

GET
/api/networks/{networkId}
curl -X GET https://api.netbird.io/api/networks/{networkId} \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

{  "id": "chacdk86lnnboviihd7g",  "routers": [  "ch8i4ug6lnn4g9hqv7m0"  ],  "routing_peers_count": 2,  "resources": [  "ch8i4ug6lnn4g9hqv7m1"  ],  "policies": [  "ch8i4ug6lnn4g9hqv7m2"  ],  "name": "Remote Network 1",  "description": "A remote network that needs to be accessed" } 

PUT/api/networks/{networkId}

Update a Network

Update/Replace a Network

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request-Body Parameters

  • Name
    name
    Type
    string
    Required
    required
    Enum
    Description

    Network name

  • Name
    description
    Type
    string
    Required
    optional
    Enum
    Description

    Network description

Request

PUT
/api/networks/{networkId}
curl -X PUT https://api.netbird.io/api/networks/{networkId} \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Token <TOKEN>' \ --data-raw '{  "name": "Remote Network 1",  "description": "A remote network that needs to be accessed" }' 

Response

{  "id": "chacdk86lnnboviihd7g",  "routers": [  "ch8i4ug6lnn4g9hqv7m0"  ],  "routing_peers_count": 2,  "resources": [  "ch8i4ug6lnn4g9hqv7m1"  ],  "policies": [  "ch8i4ug6lnn4g9hqv7m2"  ],  "name": "Remote Network 1",  "description": "A remote network that needs to be accessed" } 

DELETE/api/networks/{networkId}

Delete a Network

Delete a network

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request

DELETE
/api/networks/{networkId}
curl -X DELETE https://api.netbird.io/api/networks/{networkId} \ -H 'Authorization: Token <TOKEN>'  

GET/api/networks/{networkId}/resources

List all Network Resources

Returns a list of all resources in a network

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request

GET
/api/networks/{networkId}/resources
curl -X GET https://api.netbird.io/api/networks/{networkId}/resources \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

[  {  "id": "chacdk86lnnboviihd7g",  "type": "host",  "groups": [  {  "id": "ch8i4ug6lnn4g9hqv7m0",  "name": "devs",  "peers_count": 2,  "resources_count": 5,  "issued": "api"  }  ],  "name": "Remote Resource 1",  "description": "A remote resource inside network 1",  "address": "1.1.1.1",  "enabled": true  } ] 

POST/api/networks/{networkId}/resources

Create a Network Resource

Creates a Network Resource

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request-Body Parameters

  • Name
    name
    Type
    string
    Required
    required
    Enum
    Description

    Network resource name

  • Name
    description
    Type
    string
    Required
    optional
    Enum
    Description

    Network resource description

  • Name
    address
    Type
    string
    Required
    required
    Enum
    Description

    Network resource address (either a direct host like 1.1.1.1 or 1.1.1.1/32, or a subnet like 192.168.178.0/24, or domains like example.com and *.example.com)

  • Name
    enabled
    Type
    boolean
    Required
    required
    Enum
    Description

    Network resource status

  • Name
    groups
    Type
    string[]
    Required
    required
    Enum
    Description

    Group IDs containing the resource

Request

POST
/api/networks/{networkId}/resources
curl -X POST https://api.netbird.io/api/networks/{networkId}/resources \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Token <TOKEN>' \ --data-raw '{  "name": "Remote Resource 1",  "description": "A remote resource inside network 1",  "address": "1.1.1.1",  "enabled": true,  "groups": [  "chacdk86lnnboviihd70"  ] }' 

Response

{  "id": "chacdk86lnnboviihd7g",  "type": "host",  "groups": [  {  "id": "ch8i4ug6lnn4g9hqv7m0",  "name": "devs",  "peers_count": 2,  "resources_count": 5,  "issued": "api"  }  ],  "name": "Remote Resource 1",  "description": "A remote resource inside network 1",  "address": "1.1.1.1",  "enabled": true } 

GET/api/networks/{networkId}/resources/{resourceId}

Retrieve a Network Resource

Get information about a Network Resource

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

  • Name
    resourceId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network resource

Request

GET
/api/networks/{networkId}/resources/{resourceId}
curl -X GET https://api.netbird.io/api/networks/{networkId}/resources/{resourceId} \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

{  "id": "chacdk86lnnboviihd7g",  "type": "host",  "groups": [  {  "id": "ch8i4ug6lnn4g9hqv7m0",  "name": "devs",  "peers_count": 2,  "resources_count": 5,  "issued": "api"  }  ],  "name": "Remote Resource 1",  "description": "A remote resource inside network 1",  "address": "1.1.1.1",  "enabled": true } 

PUT/api/networks/{networkId}/resources/{resourceId}

Update a Network Resource

Update a Network Resource

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

  • Name
    resourceId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a resource

Request-Body Parameters

  • Name
    name
    Type
    string
    Required
    required
    Enum
    Description

    Network resource name

  • Name
    description
    Type
    string
    Required
    optional
    Enum
    Description

    Network resource description

  • Name
    address
    Type
    string
    Required
    required
    Enum
    Description

    Network resource address (either a direct host like 1.1.1.1 or 1.1.1.1/32, or a subnet like 192.168.178.0/24, or domains like example.com and *.example.com)

  • Name
    enabled
    Type
    boolean
    Required
    required
    Enum
    Description

    Network resource status

  • Name
    groups
    Type
    string[]
    Required
    required
    Enum
    Description

    Group IDs containing the resource

Request

PUT
/api/networks/{networkId}/resources/{resourceId}
curl -X PUT https://api.netbird.io/api/networks/{networkId}/resources/{resourceId} \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Token <TOKEN>' \ --data-raw '{  "name": "Remote Resource 1",  "description": "A remote resource inside network 1",  "address": "1.1.1.1",  "enabled": true,  "groups": [  "chacdk86lnnboviihd70"  ] }' 

Response

{  "id": "chacdk86lnnboviihd7g",  "type": "host",  "groups": [  {  "id": "ch8i4ug6lnn4g9hqv7m0",  "name": "devs",  "peers_count": 2,  "resources_count": 5,  "issued": "api"  }  ],  "name": "Remote Resource 1",  "description": "A remote resource inside network 1",  "address": "1.1.1.1",  "enabled": true } 

DELETE/api/networks/{networkId}/resources/{resourceId}

Delete a Network Resource

Delete a network resource

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description
  • Name
    resourceId
    Type
    string
    Required
    required
    Enum
    Description

Request

DELETE
/api/networks/{networkId}/resources/{resourceId}
curl -X DELETE https://api.netbird.io/api/networks/{networkId}/resources/{resourceId} \ -H 'Authorization: Token <TOKEN>'  

GET/api/networks/{networkId}/routers

List all Network Routers

Returns a list of all routers in a network

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request

GET
/api/networks/{networkId}/routers
curl -X GET https://api.netbird.io/api/networks/{networkId}/routers \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

[  {  "id": "chacdk86lnnboviihd7g",  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true  } ] 

POST/api/networks/{networkId}/routers

Create a Network Router

Creates a Network Router

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

Request-Body Parameters

  • Name
    peer
    Type
    string
    Required
    optional
    Enum
    Description

    Peer Identifier associated with route. This property can not be set together with peer_groups

  • Name
    peer_groups
    Type
    string[]
    Required
    optional
    Enum
    Description

    Peers Group Identifier associated with route. This property can not be set together with peer

  • Name
    metric
    Type
    integer
    Required
    required
    Enum
    Possible Values: >=1 and <=9999
    Description

    Route metric number. Lowest number has higher priority

  • Name
    masquerade
    Type
    boolean
    Required
    required
    Enum
    Description

    Indicate if peer should masquerade traffic to this route's prefix

  • Name
    enabled
    Type
    boolean
    Required
    required
    Enum
    Description

    Network router status

Request

POST
/api/networks/{networkId}/routers
curl -X POST https://api.netbird.io/api/networks/{networkId}/routers \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Token <TOKEN>' \ --data-raw '{  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true }' 

Response

{  "id": "chacdk86lnnboviihd7g",  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true } 

GET/api/networks/{networkId}/routers/{routerId}

Retrieve a Network Router

Get information about a Network Router

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

  • Name
    routerId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a router

Request

GET
/api/networks/{networkId}/routers/{routerId}
curl -X GET https://api.netbird.io/api/networks/{networkId}/routers/{routerId} \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

{  "id": "chacdk86lnnboviihd7g",  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true } 

PUT/api/networks/{networkId}/routers/{routerId}

Update a Network Router

Update a Network Router

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a network

  • Name
    routerId
    Type
    string
    Required
    required
    Enum
    Description

    The unique identifier of a router

Request-Body Parameters

  • Name
    peer
    Type
    string
    Required
    optional
    Enum
    Description

    Peer Identifier associated with route. This property can not be set together with peer_groups

  • Name
    peer_groups
    Type
    string[]
    Required
    optional
    Enum
    Description

    Peers Group Identifier associated with route. This property can not be set together with peer

  • Name
    metric
    Type
    integer
    Required
    required
    Enum
    Possible Values: >=1 and <=9999
    Description

    Route metric number. Lowest number has higher priority

  • Name
    masquerade
    Type
    boolean
    Required
    required
    Enum
    Description

    Indicate if peer should masquerade traffic to this route's prefix

  • Name
    enabled
    Type
    boolean
    Required
    required
    Enum
    Description

    Network router status

Request

PUT
/api/networks/{networkId}/routers/{routerId}
curl -X PUT https://api.netbird.io/api/networks/{networkId}/routers/{routerId} \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Token <TOKEN>' \ --data-raw '{  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true }' 

Response

{  "id": "chacdk86lnnboviihd7g",  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true } 

DELETE/api/networks/{networkId}/routers/{routerId}

Delete a Network Router

Delete a network router

Path Parameters

  • Name
    networkId
    Type
    string
    Required
    required
    Enum
    Description
  • Name
    routerId
    Type
    string
    Required
    required
    Enum
    Description

Request

DELETE
/api/networks/{networkId}/routers/{routerId}
curl -X DELETE https://api.netbird.io/api/networks/{networkId}/routers/{routerId} \ -H 'Authorization: Token <TOKEN>'  

GET/api/networks/routers

List all Network Routers

Returns a list of all routers in a network

Request

GET
/api/networks/routers
curl -X GET https://api.netbird.io/api/networks/routers \ -H 'Accept: application/json' \ -H 'Authorization: Token <TOKEN>'  

Response

[  {  "id": "chacdk86lnnboviihd7g",  "peer": "chacbco6lnnbn6cg5s91",  "peer_groups": [  "chacbco6lnnbn6cg5s91"  ],  "metric": 9999,  "masquerade": true,  "enabled": true  } ]