NetBox API
netbox · Company
API to access NetBox
Authentication
Sample Requests
This endpoint allows a user to determine what device (if any) is connected to a given peer device and peer interface. This is useful in a situation where a device boots with no configuration, but can detect its neighbors via a protocol such as LLDP. Two query parameters must be included in the reque
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/netbox.dev/3.4/dcim/connected-device/?peer_device=example&peer_interface=example"
import requests
params = {
"peer_device": "example",
"peer_interface": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/netbox.dev/3.4/dcim/connected-device/",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/netbox.dev/3.4/dcim/connected-device/');
url.searchParams.set('peer_device', 'example');
url.searchParams.set('peer_interface', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/netbox.dev/3.4/dcim/connected-device/")
q := baseURL.Query()
q.Set("peer_device", "example")
q.Set("peer_interface", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/netbox.dev/3.4/dcim/connected-device/")
uri.query = URI.encode_www_form({
"peer_device" => "example",
"peer_interface" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/netbox.dev/3.4/dcim/connected-device/?" . http_build_query([
"peer_device" => "example",
"peer_interface" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Read-only list of ContentTypes. Limit results to ContentTypes pertinent to NetBox objects.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/content-types/?q=test&id=1&limit=10&model=example&offset=0&ordering=example&app_label=example"
import requests
params = {
"q": "test",
"id": "1",
"limit": "10",
"model": "example",
"offset": "0",
"ordering": "example",
"app_label": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/content-types/",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/content-types/');
url.searchParams.set('q', 'test');
url.searchParams.set('id', '1');
url.searchParams.set('limit', '10');
url.searchParams.set('model', 'example');
url.searchParams.set('offset', '0');
url.searchParams.set('ordering', 'example');
url.searchParams.set('app_label', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/content-types/")
q := baseURL.Query()
q.Set("q", "test")
q.Set("id", "1")
q.Set("limit", "10")
q.Set("model", "example")
q.Set("offset", "0")
q.Set("ordering", "example")
q.Set("app_label", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/content-types/")
uri.query = URI.encode_www_form({
"q" => "test",
"id" => "1",
"limit" => "10",
"model" => "example",
"offset" => "0",
"ordering" => "example",
"app_label" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/content-types/?" . http_build_query([
"q" => "test",
"id" => "1",
"limit" => "10",
"model" => "example",
"offset" => "0",
"ordering" => "example",
"app_label" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Retrieve a list of job results
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/job-results/?q=test&id=1&name=test&user=example&id__n=example&limit=10&id__gt=example&id__lt=example&offset=0&status=example&created=example&id__gte=example&id__lte=example&name__n=example&started=example&user__n=example&interval=example&name__ic=example&name__ie=example&obj_type=example&ordering=example&completed=example&name__iew=example&name__isw=example&name__nic=example&name__nie=example&scheduled=example&status__n=example&name__niew=example&name__nisw=example&interval__n=example&name__empty=example&obj_type__n=example&interval__gt=example&interval__lt=example&interval__gte=example&interval__lte=example&created__after=example&started__after=example&created__before=example&started__before=example&completed__after=example&scheduled__after=example&completed__before=example&scheduled__before=example"
import requests
params = {
"q": "test",
"id": "1",
"name": "test",
"user": "example",
"id__n": "example",
"limit": "10",
"id__gt": "example",
"id__lt": "example",
"offset": "0",
"status": "example",
"created": "example",
"id__gte": "example",
"id__lte": "example",
"name__n": "example",
"started": "example",
"user__n": "example",
"interval": "example",
"name__ic": "example",
"name__ie": "example",
"obj_type": "example",
"ordering": "example",
"completed": "example",
"name__iew": "example",
"name__isw": "example",
"name__nic": "example",
"name__nie": "example",
"scheduled": "example",
"status__n": "example",
"name__niew": "example",
"name__nisw": "example",
"interval__n": "example",
"name__empty": "example",
"obj_type__n": "example",
"interval__gt": "example",
"interval__lt": "example",
"interval__gte": "example",
"interval__lte": "example",
"created__after": "example",
"started__after": "example",
"created__before": "example",
"started__before": "example",
"completed__after": "example",
"scheduled__after": "example",
"completed__before": "example",
"scheduled__before": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/job-results/",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/job-results/');
url.searchParams.set('q', 'test');
url.searchParams.set('id', '1');
url.searchParams.set('name', 'test');
url.searchParams.set('user', 'example');
url.searchParams.set('id__n', 'example');
url.searchParams.set('limit', '10');
url.searchParams.set('id__gt', 'example');
url.searchParams.set('id__lt', 'example');
url.searchParams.set('offset', '0');
url.searchParams.set('status', 'example');
url.searchParams.set('created', 'example');
url.searchParams.set('id__gte', 'example');
url.searchParams.set('id__lte', 'example');
url.searchParams.set('name__n', 'example');
url.searchParams.set('started', 'example');
url.searchParams.set('user__n', 'example');
url.searchParams.set('interval', 'example');
url.searchParams.set('name__ic', 'example');
url.searchParams.set('name__ie', 'example');
url.searchParams.set('obj_type', 'example');
url.searchParams.set('ordering', 'example');
url.searchParams.set('completed', 'example');
url.searchParams.set('name__iew', 'example');
url.searchParams.set('name__isw', 'example');
url.searchParams.set('name__nic', 'example');
url.searchParams.set('name__nie', 'example');
url.searchParams.set('scheduled', 'example');
url.searchParams.set('status__n', 'example');
url.searchParams.set('name__niew', 'example');
url.searchParams.set('name__nisw', 'example');
url.searchParams.set('interval__n', 'example');
url.searchParams.set('name__empty', 'example');
url.searchParams.set('obj_type__n', 'example');
url.searchParams.set('interval__gt', 'example');
url.searchParams.set('interval__lt', 'example');
url.searchParams.set('interval__gte', 'example');
url.searchParams.set('interval__lte', 'example');
url.searchParams.set('created__after', 'example');
url.searchParams.set('started__after', 'example');
url.searchParams.set('created__before', 'example');
url.searchParams.set('started__before', 'example');
url.searchParams.set('completed__after', 'example');
url.searchParams.set('scheduled__after', 'example');
url.searchParams.set('completed__before', 'example');
url.searchParams.set('scheduled__before', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/job-results/")
q := baseURL.Query()
q.Set("q", "test")
q.Set("id", "1")
q.Set("name", "test")
q.Set("user", "example")
q.Set("id__n", "example")
q.Set("limit", "10")
q.Set("id__gt", "example")
q.Set("id__lt", "example")
q.Set("offset", "0")
q.Set("status", "example")
q.Set("created", "example")
q.Set("id__gte", "example")
q.Set("id__lte", "example")
q.Set("name__n", "example")
q.Set("started", "example")
q.Set("user__n", "example")
q.Set("interval", "example")
q.Set("name__ic", "example")
q.Set("name__ie", "example")
q.Set("obj_type", "example")
q.Set("ordering", "example")
q.Set("completed", "example")
q.Set("name__iew", "example")
q.Set("name__isw", "example")
q.Set("name__nic", "example")
q.Set("name__nie", "example")
q.Set("scheduled", "example")
q.Set("status__n", "example")
q.Set("name__niew", "example")
q.Set("name__nisw", "example")
q.Set("interval__n", "example")
q.Set("name__empty", "example")
q.Set("obj_type__n", "example")
q.Set("interval__gt", "example")
q.Set("interval__lt", "example")
q.Set("interval__gte", "example")
q.Set("interval__lte", "example")
q.Set("created__after", "example")
q.Set("started__after", "example")
q.Set("created__before", "example")
q.Set("started__before", "example")
q.Set("completed__after", "example")
q.Set("scheduled__after", "example")
q.Set("completed__before", "example")
q.Set("scheduled__before", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/job-results/")
uri.query = URI.encode_www_form({
"q" => "test",
"id" => "1",
"name" => "test",
"user" => "example",
"id__n" => "example",
"limit" => "10",
"id__gt" => "example",
"id__lt" => "example",
"offset" => "0",
"status" => "example",
"created" => "example",
"id__gte" => "example",
"id__lte" => "example",
"name__n" => "example",
"started" => "example",
"user__n" => "example",
"interval" => "example",
"name__ic" => "example",
"name__ie" => "example",
"obj_type" => "example",
"ordering" => "example",
"completed" => "example",
"name__iew" => "example",
"name__isw" => "example",
"name__nic" => "example",
"name__nie" => "example",
"scheduled" => "example",
"status__n" => "example",
"name__niew" => "example",
"name__nisw" => "example",
"interval__n" => "example",
"name__empty" => "example",
"obj_type__n" => "example",
"interval__gt" => "example",
"interval__lt" => "example",
"interval__gte" => "example",
"interval__lte" => "example",
"created__after" => "example",
"started__after" => "example",
"created__before" => "example",
"started__before" => "example",
"completed__after" => "example",
"scheduled__after" => "example",
"completed__before" => "example",
"scheduled__before" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/netbox.dev/3.4/extras/job-results/?" . http_build_query([
"q" => "test",
"id" => "1",
"name" => "test",
"user" => "example",
"id__n" => "example",
"limit" => "10",
"id__gt" => "example",
"id__lt" => "example",
"offset" => "0",
"status" => "example",
"created" => "example",
"id__gte" => "example",
"id__lte" => "example",
"name__n" => "example",
"started" => "example",
"user__n" => "example",
"interval" => "example",
"name__ic" => "example",
"name__ie" => "example",
"obj_type" => "example",
"ordering" => "example",
"completed" => "example",
"name__iew" => "example",
"name__isw" => "example",
"name__nic" => "example",
"name__nie" => "example",
"scheduled" => "example",
"status__n" => "example",
"name__niew" => "example",
"name__nisw" => "example",
"interval__n" => "example",
"name__empty" => "example",
"obj_type__n" => "example",
"interval__gt" => "example",
"interval__lt" => "example",
"interval__gte" => "example",
"interval__lte" => "example",
"created__after" => "example",
"started__after" => "example",
"created__before" => "example",
"started__before" => "example",
"completed__after" => "example",
"scheduled__after" => "example",
"completed__before" => "example",
"scheduled__before" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with NetBox API?
NetBox API is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. NetBox API is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide