Change whether and how often adjacency is collected.
const url = 'https://example.com/api/v1/settings/neighbors';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"arp_enabled":true,"arp_interval_secs":1,"enabled":true,"interval_secs":1,"l3_enabled":true,"l3_interval_secs":1,"max_interval_secs":1,"media_enabled":true,"media_interval_secs":1,"min_interval_secs":1,"routing_enabled":true,"routing_interval_secs":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/v1/settings/neighbors \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "arp_enabled": true, "arp_interval_secs": 1, "enabled": true, "interval_secs": 1, "l3_enabled": true, "l3_interval_secs": 1, "max_interval_secs": 1, "media_enabled": true, "media_interval_secs": 1, "min_interval_secs": 1, "routing_enabled": true, "routing_interval_secs": 1 }'Applies from the next scheduler sweep. Turning collection off stops issuing walks but keeps everything already recorded — the current set and the change history are unaffected.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”How this deployment discovers connectivity: CDP/LLDP neighbours and interface addresses.
object
Whether ARP / IPv6-neighbour walks are issued at all. Omitted on update leaves it unchanged.
Off unless an operator turns it on: this walk reads a table sized by the network rather than by the device, and it is the only discovery walk here that costs a busy switch measurable work. What it buys is the only answer nothing else can give — which hosts are on your segments that Yagra is not monitoring.
How often each SNMP node’s ARP / IPv6-neighbour tables are walked, in seconds. Omitted on update leaves it unchanged.
Whether CDP/LLDP neighbours are collected at all — the SNMP walks and the Meraki Dashboard reads (a switch’s, an MX’s and an MR’s) alike.
How often each SNMP node’s neighbour tables are walked, and each Meraki switch’s, MX’s and MR’s neighbours are read, in seconds. An MX or MR is read a share per inventory sync within the organization’s API rate, so across a large organization a round can take longer than this interval.
Whether interface-address walks are issued at all. Omitted on update leaves it unchanged.
How often each SNMP node’s interface-address tables are walked, in seconds. Omitted on update leaves it unchanged.
Largest cadence this deployment accepts, in seconds.
Whether media-type collection is issued at all. Omitted on update leaves it unchanged.
On unless an operator turns it off. It reads ifMauTable — one row per Ethernet port on the
device itself, once an hour — which is what fills the Interfaces tab’s Media column.
⚠️ Many devices do not implement MAU-MIB at all; on those the walk costs one query and
returns nothing, and the column stays empty. Turning this off changes nothing for them.
How often each SNMP node’s media type is collected, in seconds. Omitted on update leaves it unchanged.
Smallest cadence this deployment accepts, in seconds.
Whether routing-adjacency collection is issued at all. Omitted on update leaves it unchanged.
On unless an operator turns it off. This is what finds the links that share no subnet — a
point-to-point /32, an unnumbered OSPF link, an eBGP session across a segment — which the
shared-subnet rule structurally cannot see. The tables it reads are sized by the device’s own
peering mesh, and the routing table itself is never walked: it is probed one destination at a
time.
How often each SNMP node’s routing adjacency is collected, in seconds. Omitted on update leaves it unchanged.
Examplegenerated
{ "arp_enabled": true, "arp_interval_secs": 1, "enabled": true, "interval_secs": 1, "l3_enabled": true, "l3_interval_secs": 1, "max_interval_secs": 1, "media_enabled": true, "media_interval_secs": 1, "min_interval_secs": 1, "routing_enabled": true, "routing_interval_secs": 1}Responses
Section titled “Responses”Settings updated; the change applies from the next scheduler sweep
The cadence is outside the allowed range
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}No valid bearer token
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Role lacks ManageConfig
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}Inventory storage is unavailable (skeleton mode)
The ADR-019 envelope every failure renders as. pub(crate) and schema-bearing so the OpenAPI
document can name one error shape for every endpoint (ADR-035) instead of leaving 4xx/5xx bodies
undescribed — a client that has to guess the failure shape ends up parsing the success shape and
reading undefined.
object
object
Stable machine-readable code. Clients branch on this, never on the message.
Operator-facing sentence. Safe to display; never carries an internal error’s own text.
Examplegenerated
{ "error": { "code": "example", "message": "example" }}