import {HeroPattern} from "@/components/HeroPattern"; import {Note} from "@/components/mdx"; export const title = 'Routes' ## List all Routes {{ tag: 'GET' , label: '/api/routes' }} Returns a list of all routes ```bash {{ title: 'cURL' }} curl -X GET https://api.netbird.io/api/routes \ -H "Authorization: Token " \ -H 'Accept: application/json' \ ``` ```js const axios = require('axios'); let config = { method: 'get', maxBodyLength: Infinity, url: '/api/routes', headers: { 'Accept': 'application/json', 'Authorization': 'Token ' } }; axios(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); }); ``` ```python import requests import json url = "https://api.netbird.io/api/routes" headers = { 'Accept': 'application/json', 'Authorization': 'Token ' } response = requests.request("GET", url, headers=headers) print(response.text) ``` ```go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.netbird.io/api/routes" method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return } req.Header.Add("Accept", "application/json") req.Header.Add("Authorization", "Token ") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } ``` ```ruby require "uri" require "json" require "net/http" url = URI("https://api.netbird.io/api/routes") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["Accept"] = "application/json" request["Authorization"] = "Token " response = https.request(request) puts response.read_body ``` ```java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("https://api.netbird.io/api/routes") .method("GET") .addHeader("Accept", "application/json") .addHeader("Authorization: Token ") .build(); Response response = client.newCall(request).execute(); ``` ```php 'https://api.netbird.io/api/routes', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Accept: application/json', 'Authorization: Token ' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ``` ```json {{ title: 'Example' }} [ { "id": "chacdk86lnnboviihd7g", "network_type": "IPv4", "description": "My first route", "network_id": "Route 1", "enabled": true, "peer": "chacbco6lnnbn6cg5s91", "network": "10.64.0.0/24", "metric": 9999, "masquerade": true, "groups": [ "chacdk86lnnboviihd70" ] } ] ``` ```json {{ title: 'Schema' }} [ { "id": "string", "network_type": "string", "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] } ] ``` --- ## Create a Route {{ tag: 'POST' , label: '/api/routes' }} Creates a Route #### Request-Body Parameters Route description Route network identifier, to group HA routes Route status Peer Identifier associated with route Network range in CIDR format Route metric number. Lowest number has higher priority Indicate if peer should masquerade traffic to this route's prefix Route group tag groups ```bash {{ title: 'cURL' }} curl -X POST https://api.netbird.io/api/routes \ -H "Authorization: Token " \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }' ``` ```js const axios = require('axios'); let data = JSON.stringify({ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }); let config = { method: 'post', maxBodyLength: Infinity, url: '/api/routes', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Token ' }, data : data }; axios(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); }); ``` ```python import requests import json url = "https://api.netbird.io/api/routes" payload = json.dumps({ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }) headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Token ' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) ``` ```go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.netbird.io/api/routes" method := "POST" payload := strings.NewReader(`{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }`) client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json") req.Header.Add("Accept", "application/json") req.Header.Add("Authorization", "Token ") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } ``` ```ruby require "uri" require "json" require "net/http" url = URI("https://api.netbird.io/api/routes") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = "application/json" request["Accept"] = "application/json" request["Authorization"] = "Token " request.body = JSON.dump({ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }) response = https.request(request) puts response.read_body ``` ```java OkHttpClient client = new OkHttpClient().newBuilder() .build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, '{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }'); Request request = new Request.Builder() .url("https://api.netbird.io/api/routes") .method("POST", body) .addHeader("Content-Type", "application/json") .addHeader("Accept", "application/json") .addHeader("Authorization: Token ") .build(); Response response = client.newCall(request).execute(); ``` ```php 'https://api.netbird.io/api/routes', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS =>'{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Accept: application/json', 'Authorization: Token ' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ``` ```json {{ title: 'Example' }} { "id": "chacdk86lnnboviihd7g", "network_type": "IPv4", "description": "My first route", "network_id": "Route 1", "enabled": true, "peer": "chacbco6lnnbn6cg5s91", "network": "10.64.0.0/24", "metric": 9999, "masquerade": true, "groups": [ "chacdk86lnnboviihd70" ] } ``` ```json {{ title: 'Schema' }} { "id": "string", "network_type": "string", "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] } ``` --- ## Retrieve a Route {{ tag: 'GET' , label: '/api/routes/{routeId}' }} Get information about a Routes #### Path Parameters The unique identifier of a route ```bash {{ title: 'cURL' }} curl -X GET https://api.netbird.io/api/routes/{routeId} \ -H "Authorization: Token " \ -H 'Accept: application/json' \ ``` ```js const axios = require('axios'); let config = { method: 'get', maxBodyLength: Infinity, url: '/api/routes/{routeId}', headers: { 'Accept': 'application/json', 'Authorization': 'Token ' } }; axios(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); }); ``` ```python import requests import json url = "https://api.netbird.io/api/routes/{routeId}" headers = { 'Accept': 'application/json', 'Authorization': 'Token ' } response = requests.request("GET", url, headers=headers) print(response.text) ``` ```go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.netbird.io/api/routes/{routeId}" method := "GET" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return } req.Header.Add("Accept", "application/json") req.Header.Add("Authorization", "Token ") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } ``` ```ruby require "uri" require "json" require "net/http" url = URI("https://api.netbird.io/api/routes/{routeId}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Get.new(url) request["Accept"] = "application/json" request["Authorization"] = "Token " response = https.request(request) puts response.read_body ``` ```java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("https://api.netbird.io/api/routes/{routeId}") .method("GET") .addHeader("Accept", "application/json") .addHeader("Authorization: Token ") .build(); Response response = client.newCall(request).execute(); ``` ```php 'https://api.netbird.io/api/routes/{routeId}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => array( 'Accept: application/json', 'Authorization: Token ' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ``` ```json {{ title: 'Example' }} { "id": "chacdk86lnnboviihd7g", "network_type": "IPv4", "description": "My first route", "network_id": "Route 1", "enabled": true, "peer": "chacbco6lnnbn6cg5s91", "network": "10.64.0.0/24", "metric": 9999, "masquerade": true, "groups": [ "chacdk86lnnboviihd70" ] } ``` ```json {{ title: 'Schema' }} { "id": "string", "network_type": "string", "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] } ``` --- ## Update a Route {{ tag: 'PUT' , label: '/api/routes/{routeId}' }} Update/Replace a Route #### Path Parameters The unique identifier of a route #### Request-Body Parameters Route description Route network identifier, to group HA routes Route status Peer Identifier associated with route Network range in CIDR format Route metric number. Lowest number has higher priority Indicate if peer should masquerade traffic to this route's prefix Route group tag groups ```bash {{ title: 'cURL' }} curl -X PUT https://api.netbird.io/api/routes/{routeId} \ -H "Authorization: Token " \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ --data-raw '{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }' ``` ```js const axios = require('axios'); let data = JSON.stringify({ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }); let config = { method: 'put', maxBodyLength: Infinity, url: '/api/routes/{routeId}', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Token ' }, data : data }; axios(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); }); ``` ```python import requests import json url = "https://api.netbird.io/api/routes/{routeId}" payload = json.dumps({ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }) headers = { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Token ' } response = requests.request("PUT", url, headers=headers, data=payload) print(response.text) ``` ```go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.netbird.io/api/routes/{routeId}" method := "PUT" payload := strings.NewReader(`{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }`) client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("Content-Type", "application/json") req.Header.Add("Accept", "application/json") req.Header.Add("Authorization", "Token ") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } ``` ```ruby require "uri" require "json" require "net/http" url = URI("https://api.netbird.io/api/routes/{routeId}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Put.new(url) request["Content-Type"] = "application/json" request["Accept"] = "application/json" request["Authorization"] = "Token " request.body = JSON.dump({ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }) response = https.request(request) puts response.read_body ``` ```java OkHttpClient client = new OkHttpClient().newBuilder() .build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, '{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }'); Request request = new Request.Builder() .url("https://api.netbird.io/api/routes/{routeId}") .method("PUT", body) .addHeader("Content-Type", "application/json") .addHeader("Accept", "application/json") .addHeader("Authorization: Token ") .build(); Response response = client.newCall(request).execute(); ``` ```php 'https://api.netbird.io/api/routes/{routeId}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'PUT', CURLOPT_POSTFIELDS =>'{ "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] }', CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'Accept: application/json', 'Authorization: Token ' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ``` ```json {{ title: 'Example' }} { "id": "chacdk86lnnboviihd7g", "network_type": "IPv4", "description": "My first route", "network_id": "Route 1", "enabled": true, "peer": "chacbco6lnnbn6cg5s91", "network": "10.64.0.0/24", "metric": 9999, "masquerade": true, "groups": [ "chacdk86lnnboviihd70" ] } ``` ```json {{ title: 'Schema' }} { "id": "string", "network_type": "string", "description": "string", "network_id": "string", "enabled": "boolean", "peer": "string", "network": "string", "metric": "integer", "masquerade": "boolean", "groups": [ "string" ] } ``` --- ## Delete a Route {{ tag: 'DELETE' , label: '/api/routes/{routeId}' }} Delete a Route #### Path Parameters The unique identifier of a route ```bash {{ title: 'cURL' }} curl -X DELETE https://api.netbird.io/api/routes/{routeId} \ -H "Authorization: Token " \ ``` ```js const axios = require('axios'); let config = { method: 'delete', maxBodyLength: Infinity, url: '/api/routes/{routeId}', headers: { 'Authorization': 'Token ' } }; axios(config) .then((response) => { console.log(JSON.stringify(response.data)); }) .catch((error) => { console.log(error); }); ``` ```python import requests import json url = "https://api.netbird.io/api/routes/{routeId}" headers = { 'Authorization': 'Token ' } response = requests.request("DELETE", url, headers=headers) print(response.text) ``` ```go package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.netbird.io/api/routes/{routeId}" method := "DELETE" client := &http.Client { } req, err := http.NewRequest(method, url, nil) if err != nil { fmt.Println(err) return } req.Header.Add("Authorization", "Token ") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) } ``` ```ruby require "uri" require "json" require "net/http" url = URI("https://api.netbird.io/api/routes/{routeId}") https = Net::HTTP.new(url.host, url.port) https.use_ssl = true request = Net::HTTP::Delete.new(url) request["Authorization"] = "Token " response = https.request(request) puts response.read_body ``` ```java OkHttpClient client = new OkHttpClient().newBuilder() .build(); Request request = new Request.Builder() .url("https://api.netbird.io/api/routes/{routeId}") .method("DELETE") .addHeader("Authorization: Token ") .build(); Response response = client.newCall(request).execute(); ``` ```php 'https://api.netbird.io/api/routes/{routeId}', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'DELETE', CURLOPT_HTTPHEADER => array( 'Authorization: Token ' ), )); $response = curl_exec($curl); curl_close($curl); echo $response; ``` ---