Skip to content

PeeringDB ​

19 endpoints at a glance
MethodPathSummary
GET/peeringdb/endpoints/List Endpoints
GET/peeringdb/fac/Browse Facilities
GET/peeringdb/fac/{fac_id}/Get Facility
GET/peeringdb/fac/countries/List Fac Countries
GET/peeringdb/fac/regions/List Fac Regions
GET/peeringdb/imports/List Imports
GET/peeringdb/imports/{import_id}/Get Import
POST/peeringdb/imports/runSubmit Import
GET/peeringdb/ix/Browse Ixps
GET/peeringdb/ix/{ix_id}/Get Ixp
GET/peeringdb/ix/countries/List Ix Countries
GET/peeringdb/ix/regions/List Ix Regions
GET/peeringdb/net/Browse Networks
GET/peeringdb/net/{asn}/Get Network
GET/peeringdb/net/countries/List Net Countries
POST/peeringdb/resolve-geonamesResolve Geonames
GET/peeringdb/resolve-geonames/statusGet Resolve Geonames Status
GET/peeringdb/stats/{endpoint}/Get Endpoint Stats
GET/peeringdb/status/Get Status

peeringdb​


List Endpoints​

GET
/peeringdb/endpoints/

Catalogue of importable endpoints — drives the admin dropdown.
Static (14 endpoints baked into the substrate); kept on the wire
surface so future endpoint additions are a backend-only change.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Get Status​

GET
/peeringdb/status/

High-level admin-header state — per-endpoint row counts +
last import timestamp + worker liveness.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Get Endpoint Stats​

GET
/peeringdb/stats/{endpoint}/

Per-endpoint distribution stats (top-N buckets on
operator-useful fields). 400 on unknown endpoint.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

endpoint*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List Imports​

GET
/peeringdb/imports/

Newest-first list of import-run rows. Inclusive YYYY-MM-DD
bounds; endpoint filters to one endpoint.

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

endpoint
since
until
limit
Type
integer
Default
100

Responses​

Successful Response

application/json
JSON
[
  
{
  
  
"additionalProperties": "string"
  
}
]

Playground​

Headers
Variables
Key
Value

Samples​


Get Import​

GET
/peeringdb/imports/{import_id}/

Single import-run row. import_id is the
<endpoint>_<started_ts> we generated at submission time.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

import_id*
Type
string
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Browse Ixps​

GET
/peeringdb/ix/

List IXPs with optional q (name prefix), country (2-cc),
region (continent group). Server-paginates via limit +
skip; envelope is {rows, total, limit, offset}.

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

q
country
region
limit
Type
integer
Default
50
skip
Type
integer
Default
0

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List Ix Countries​

GET
/peeringdb/ix/countries/

Countries with IXPs — drives the picker on the IXP list view.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


List Ix Regions​

GET
/peeringdb/ix/regions/

Continent-region groupings (PeeringDB's
data.region_continent) — drives the region picker.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Get Ixp​

GET
/peeringdb/ix/{ix_id}/

One IXP joined with its LAN segments, prefixes, member
networks (with ASN + peer IPs), and connected facilities.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

ix_id*
Type
integer
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Browse Networks​

GET
/peeringdb/net/

List networks (PeeringDB's view of ASNs). Filter by name
prefix / exact ASN / org country.

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

q
asn
country
limit
Type
integer
Default
50
skip
Type
integer
Default
0

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List Net Countries​

GET
/peeringdb/net/countries/

Org countries (the net rows don't carry country directly;
we read from the parent org).

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Get Network​

GET
/peeringdb/net/{asn}/

Network detail keyed by ASN (operator-friendly key).
Joined with org + IXP participations + facility presences.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

asn*
Type
integer
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Browse Facilities​

GET
/peeringdb/fac/

List facilities (data centers / colo sites). Same filters
as :func:browse_ixps.

Parameters​

Header Parameters

authorization
x-api-key

Query Parameters

q
country
region
limit
Type
integer
Default
50
skip
Type
integer
Default
0

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


List Fac Countries​

GET
/peeringdb/fac/countries/

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


List Fac Regions​

GET
/peeringdb/fac/regions/

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Get Facility​

GET
/peeringdb/fac/{fac_id}/

Facility detail joined with networks present + IXPs present.

Parameters​

Header Parameters

authorization
x-api-key

Path Parameters

fac_id*
Type
integer
Required

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Variables
Key
Value

Samples​


Submit Import​

POST
/peeringdb/imports/run

Queue an import. Returns immediately with queue depth + the
worker's in-flight job; the audit row is written once the worker
reaches it (same contract as GeoNames).

Parameters​

Header Parameters

authorization
x-api-key

Request Body​

application/json
JSON
{
  
"endpoint": "string",
  
"all": false
}

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers
Body

Samples​


Resolve Geonames​

POST
/peeringdb/resolve-geonames

Queue a GeoNames-resolution sweep. Returns immediately with
the worker's queue depth + the live progress snapshot — the
actual work runs on the PeeringDB worker thread, which lets the
UI poll :func:get_resolve_geonames_status and avoids the
reverse-proxy 504 the synchronous version was hitting on the
full ~36 k-row sweep.

Already runs automatically after every successful
POST /imports/run with all=true; this manual trigger is
for the case where GeoNames itself was just re-imported and any
previously-unresolved rows might now find a match.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Get Resolve Geonames Status​

GET
/peeringdb/resolve-geonames/status

Live snapshot of the current (or last-finished)
GeoNames-resolve run. The UI polls this every couple of seconds
while a run is in flight to drive the per-endpoint progress
bars; once status flips to "done" or "failed" the
poll can stop.

Returns {state: None, ...} when no run has been triggered
this process-lifetime — the UI renders the trigger button in
that case, no progress surface.

Parameters​

Header Parameters

authorization
x-api-key

Responses​

Successful Response

application/json
JSON
{
  
"additionalProperties": "string"
}

Playground​

Headers

Samples​


Atlas — built on RIPE Atlas data.