Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
curl --request POST \
--url https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"offset": 123,
"limit": 123,
"sort": "<string>",
"fields": [
"<string>"
]
}
'import requests
url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search"
payload = {
"offset": 123,
"limit": 123,
"sort": "<string>",
"fields": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({offset: 123, limit: 123, sort: '<string>', fields: ['<string>']})
};
fetch('https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 123,
'limit' => 123,
'sort' => '<string>',
'fields' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search"
payload := strings.NewReader("{\n \"offset\": 123,\n \"limit\": 123,\n \"sort\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 123,\n \"limit\": 123,\n \"sort\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 123,\n \"limit\": 123,\n \"sort\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"notation": "string",
"ipNet": {
"ip": "string",
"mask": "string"
},
"internalMetadata": {
"internal": true,
"readOnly": true,
"master": true,
"prefixLengthLimits": {
"min": 0,
"max": 0,
"exact": [
0
]
},
"holders": [
{
"tenantUUID": "string",
"projectID": "string",
"organisation": "string",
"type": 0,
"top": true
}
]
},
"externalMetadata": {
"key1": "value1",
"keyN": "valueN"
},
"holderMetadata": {
"key1": "value1",
"keyN": "valueN"
},
"geodata": [
{
"provider": "string",
"countryName": "string",
"countryCode": "string",
"cityName": "string",
"date": "string",
"state": "string"
}
],
"whois": {
"inetnum": "string",
"registrar": "string",
"source": "string",
"recordActive": true,
"nets": [
{
"organisation": "string",
"netname": "string",
"net_type": "string",
"net_handle": "string",
"origin_as": "string",
"country": [
"string"
],
"comment": "string",
"created": "string",
"last_modified": "string",
"record_created": "string",
"record_modified": "string",
"mnt_by": [
"string"
],
"mnt_irt": [
"string"
],
"pocs": [
{
"handle": "string",
"kind": "string"
}
],
"notify": "string"
}
],
"domains": [
{
"domain": "string",
"nservers": [
"string"
]
}
]
},
"bgp": {
"peerCount": {
"fullTable": 0,
"active": 0
},
"asOrigins": [
{
"asn": 0,
"peersSeeing": 0
}
],
"asSetOrigins": [
{
"asSet": "string",
"peersSeeing": 0
}
]
},
"rpki": {
"roas": [
{
"maxLength": 0,
"asn": "string",
"ta": "string"
}
],
"suggestions": [
{
"maxLength": 0,
"asn": "string",
"ta": "string",
"status": "as0"
}
]
},
"routes": [
{
"route": "string",
"origin": "string",
"descr": [
"string"
],
"mnt_by": [
"string"
],
"changed": [
"string"
],
"source": "string"
}
],
"routingHealth": {
"criticalityStatus": "critical",
"bgpStatus": "match",
"bgpActions": [
{
"action": "add",
"asns": [
0
]
}
],
"rpkiStatus": "match",
"rpkiActions": [
{
"action": "add",
"asns": [
0
]
}
],
"irrStatus": "match",
"irrActions": [
{
"action": "add",
"asns": [
{
"origin": 0,
"target": "string"
}
]
}
],
"irmActions": [
{
"action": "add",
"asns": [
0
]
}
]
},
"cacheDerrived": {
"registrar": "string"
}
}
],
"metadata": {
"limit": 0,
"offset": 0
}
}{
"status": "string",
"code": 0,
"error": "string"
}{
"status": "string",
"code": 0,
"error": "string"
}{
"status": "string",
"code": 0,
"error": "string"
}Returns a list of prefixes that match the given search parameters.
curl --request POST \
--url https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"offset": 123,
"limit": 123,
"sort": "<string>",
"fields": [
"<string>"
]
}
'import requests
url = "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search"
payload = {
"offset": 123,
"limit": 123,
"sort": "<string>",
"fields": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({offset: 123, limit: 123, sort: '<string>', fields: ['<string>']})
};
fetch('https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 123,
'limit' => 123,
'sort' => '<string>',
'fields' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search"
payload := strings.NewReader("{\n \"offset\": 123,\n \"limit\": 123,\n \"sort\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 123,\n \"limit\": 123,\n \"sort\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigw.ipxo.com/nethub-data/{tenantUUID}/prefixes/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 123,\n \"limit\": 123,\n \"sort\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": [
{
"notation": "string",
"ipNet": {
"ip": "string",
"mask": "string"
},
"internalMetadata": {
"internal": true,
"readOnly": true,
"master": true,
"prefixLengthLimits": {
"min": 0,
"max": 0,
"exact": [
0
]
},
"holders": [
{
"tenantUUID": "string",
"projectID": "string",
"organisation": "string",
"type": 0,
"top": true
}
]
},
"externalMetadata": {
"key1": "value1",
"keyN": "valueN"
},
"holderMetadata": {
"key1": "value1",
"keyN": "valueN"
},
"geodata": [
{
"provider": "string",
"countryName": "string",
"countryCode": "string",
"cityName": "string",
"date": "string",
"state": "string"
}
],
"whois": {
"inetnum": "string",
"registrar": "string",
"source": "string",
"recordActive": true,
"nets": [
{
"organisation": "string",
"netname": "string",
"net_type": "string",
"net_handle": "string",
"origin_as": "string",
"country": [
"string"
],
"comment": "string",
"created": "string",
"last_modified": "string",
"record_created": "string",
"record_modified": "string",
"mnt_by": [
"string"
],
"mnt_irt": [
"string"
],
"pocs": [
{
"handle": "string",
"kind": "string"
}
],
"notify": "string"
}
],
"domains": [
{
"domain": "string",
"nservers": [
"string"
]
}
]
},
"bgp": {
"peerCount": {
"fullTable": 0,
"active": 0
},
"asOrigins": [
{
"asn": 0,
"peersSeeing": 0
}
],
"asSetOrigins": [
{
"asSet": "string",
"peersSeeing": 0
}
]
},
"rpki": {
"roas": [
{
"maxLength": 0,
"asn": "string",
"ta": "string"
}
],
"suggestions": [
{
"maxLength": 0,
"asn": "string",
"ta": "string",
"status": "as0"
}
]
},
"routes": [
{
"route": "string",
"origin": "string",
"descr": [
"string"
],
"mnt_by": [
"string"
],
"changed": [
"string"
],
"source": "string"
}
],
"routingHealth": {
"criticalityStatus": "critical",
"bgpStatus": "match",
"bgpActions": [
{
"action": "add",
"asns": [
0
]
}
],
"rpkiStatus": "match",
"rpkiActions": [
{
"action": "add",
"asns": [
0
]
}
],
"irrStatus": "match",
"irrActions": [
{
"action": "add",
"asns": [
{
"origin": 0,
"target": "string"
}
]
}
],
"irmActions": [
{
"action": "add",
"asns": [
0
]
}
]
},
"cacheDerrived": {
"registrar": "string"
}
}
],
"metadata": {
"limit": 0,
"offset": 0
}
}{
"status": "string",
"code": 0,
"error": "string"
}{
"status": "string",
"code": 0,
"error": "string"
}{
"status": "string",
"code": 0,
"error": "string"
}Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Tenant UUID
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Sort order for the returned items. Keys must be provided in a single string, separated by ,. Order determines sorting priority. Adding - in front of the key enables DESCENDING sort. Supported keys: [notation, ipNet]. To achieve correct "IP sort" use ipNet.
array of prefix object fields to return in response. Supports sub-object projection by using ., i.e.: geodata.provider. NOTE: internalMetadata does not fully support sub-object field projection and will always return entire structure, with non-requested fields initialized with default type values (i.e. booleans will be equal to FALSE and strings to ""), so it is advised to always request entire internalMetadata to avoid data analysis inconsistencies.