Appearance
anycast
8 endpoints at a glance
| Method | Path | Summary |
|---|---|---|
GET | /anycast/changes/ | List Changes |
GET | /anycast/imports/ | List Imports |
POST | /anycast/imports/run | Run Import |
GET | /anycast/intel/ | Get Intel |
GET | /anycast/lookup/{ip} | Lookup Ip |
GET | /anycast/prefixes/ | List Prefixes |
GET | /anycast/prefixes/{prefix} | Get Prefix |
GET | /anycast/stats/ | Get Stats |
anycast
Get Stats
List Prefixes
GET
/anycast/prefixes/
Paginated prefix browser. Filters compose with $and —
pick any subset.
af— 4 or 6 (only these two values are accepted;
anything else is treated as "no filter").asn— exact match on the origin ASN (integer).country— prefix observed in this country at any of its
catchments. ISO 3166-1 alpha-2.q— substring match on the CIDR string (e.g.1.0.).
Parameters
Query Parameters
af
asn
country
q
limit
Type
integer
Default
100skip
Type
integer
Default
0Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Prefix
GET
/anycast/prefixes/{prefix}
Single-prefix detail. Returns the full doc (incl. catchment
list) for the map view. 404 when the prefix isn't in the current
anycast set — operators use that to confirm a prefix dropped out
of the upstream feed.
Parameters
Path Parameters
prefix*
Type
Requiredstring
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Lookup Ip
GET
/anycast/lookup/{ip}
Longest-prefix-match for one IP. Returns the full anycast doc
(prefix + ASN + catchments) or 404 when no anycast prefix covers
it. Drives the "is this IP anycast?" check from monitoring and
the IP-detail page.
Parameters
Path Parameters
ip*
Type
Requiredstring
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
Get Intel
GET
/anycast/intel/
One-call Anycast Intelligence payload: headline stats, top origin
ASes (name-enriched), top countries, and the per-import growth/churn
series. Public read like the rest of this router.
Parameters
Query Parameters
asn_limit
Type
integer
Maximum
200Minimum
1Default
20country_limit
Type
integer
Maximum
500Minimum
1Default
50growth_limit
Type
integer
Maximum
200Minimum
1Default
52Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Changes
GET
/anycast/changes/
Newest-first per-prefix change log. Each row is one add/remove
event from one import. since_ts filters to events at or after
a unix-second timestamp — pair with the dashboard's date range
for "what's changed since N days ago".
Parameters
Query Parameters
action
Filter to "added" or "removed". Omit for both.
since_ts
limit
Type
integer
Default
200skip
Type
integer
Default
0Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}
List Imports
Run Import
POST
/anycast/imports/run
Enqueue a full v4+v6 import on the background worker. Returns
immediately with the queue snapshot — the admin panel polls
GET /imports/ for completion. The full pass is ~30s of
upserts + diff + db.ips stamping, well past the 15s HTTP
gateway timeout, so running it inline is not an option. The
worker serialises with the scheduled cron path so the mark-and-
sweep is race-free.
Parameters
Header Parameters
authorization
x-api-key
Responses
Successful Response
application/json
JSON "additionalProperties": "string"
{
}