{"openapi":"3.1.0","info":{"title":"eero API reference","version":"2026-10-28-draft","description":"Read account details, network settings, devices, usage, and insights.\n\nQuery parameter requirements and constraints follow the Executor adapter contract. Response schemas are unspecified."},"servers":[{"url":"https://api-user.e2ro.com"}],"components":{"securitySchemes":{"EeroSessionToken":{"type":"apiKey","in":"header","name":"x-user-token","description":"Session token sent in the x-user-token header."}}},"security":[{"EeroSessionToken":[]}],"paths":{"/2.2/account":{"get":{"operationId":"get_2_2_account","summary":"Get account","description":"Get the current account.\n\nAliases: `account.get_account`.","tags":["account"],"parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["account.get_account"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"account.get_account","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/1","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"account.get_account":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/countries/sms":{"get":{"operationId":"get_2_2_countries_sms","summary":"List SMS countries","description":"List countries available for SMS verification.\n\nAliases: `account.get_sms_countries`.","tags":["account"],"parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["account.get_sms_countries"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"account.get_sms_countries","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/34","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"account.get_sms_countries":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/eero_models/capabilities":{"get":{"operationId":"get_2_2_eero_models_capabilities","summary":"Get model capabilities","description":"Get eero model capabilities for a network.\n\nAliases: `entitlements.get_model_capabilities`.","tags":["entitlements"],"parameters":[{"name":"networkId","in":"query","required":true,"schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"},"style":"form","explode":true,"description":"Network identifier.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["entitlements.get_model_capabilities"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"networkId":{"schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"networkId\": identifier})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"entitlements.get_model_capabilities","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/23","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"entitlements.get_model_capabilities":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/eeros/{eero_id}":{"get":{"operationId":"get_2_2_eeros_eero_id","summary":"Get an eero","description":"Get an eero and its settings, including LED status.\n\nAliases: `eeros.get_eero`, `eeros.get_led_status`.","tags":["eeros"],"parameters":[{"name":"eero_id","in":"path","required":true,"schema":{"type":"string"},"description":"Eero identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["eeros.get_eero","eeros.get_led_status"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"eeros.get_eero","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/44","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."},{"alias":"eeros.get_led_status","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/46","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"eeros.get_eero":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."},"eeros.get_led_status":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/eeros/{eero_id}/connections":{"get":{"operationId":"get_2_2_eeros_eero_id_connections","summary":"Get eero connections","description":"Get connection details for an eero.\n\nAliases: `eeros.get_connections`.","tags":["eeros"],"parameters":[{"name":"eero_id","in":"path","required":true,"schema":{"type":"string"},"description":"Eero identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["eeros.get_connections"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"eeros.get_connections","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/45","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"eeros.get_connections":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/entitlements/networks/{network_id}/features":{"get":{"operationId":"get_2_2_entitlements_networks_network_id_features","summary":"Get network features","description":"Get features available to a network.\n\nAliases: `entitlements.get_features`.","tags":["entitlements"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["entitlements.get_features"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"entitlements.get_features","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/22","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"entitlements.get_features":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/entitlements/networks/{network_id}/upsell_features":{"get":{"operationId":"get_2_2_entitlements_networks_network_id_upsell_features","summary":"Get upgrade features","description":"Get features offered through a network upgrade.\n\nAliases: `entitlements.get_upsell_features`.","tags":["entitlements"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["entitlements.get_upsell_features"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"entitlements.get_upsell_features","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/36","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"entitlements.get_upsell_features":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks":{"get":{"operationId":"get_2_2_networks","summary":"List networks","description":"List networks available to the account.\n\nAliases: `networks.get_networks`.","tags":["networks"],"parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["networks.get_networks"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"networks.get_networks","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/0","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"networks.get_networks":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}":{"get":{"operationId":"get_2_2_networks_network_id","summary":"Get a network","description":"Get network details and settings, including DNS, security, premium status, and smart queue management.\n\nAliases: `dns.get_dns_settings`, `networks.get_network`, `networks.get_premium_status`, `security.get_security_settings`, `sqm.get_sqm_settings`.","tags":["networks"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["dns.get_dns_settings","networks.get_network","networks.get_premium_status","security.get_security_settings","sqm.get_sqm_settings"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"dns.get_dns_settings","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/50","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."},{"alias":"networks.get_network","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/2","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."},{"alias":"networks.get_premium_status","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/53","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."},{"alias":"security.get_security_settings","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/51","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."},{"alias":"sqm.get_sqm_settings","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/52","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"dns.get_dns_settings":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."},"networks.get_network":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."},"networks.get_premium_status":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."},"security.get_security_settings":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."},"sqm.get_sqm_settings":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/ac_compat":{"get":{"operationId":"get_2_2_networks_network_id_ac_compat","summary":"Get compatibility settings","description":"Get compatibility settings for older Wi-Fi devices.\n\nAliases: `ac_compat.get_ac_compat`.","tags":["ac_compat"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["ac_compat.get_ac_compat"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"ac_compat.get_ac_compat","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/14","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"enabled":"boolean"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"enabled":{"type":"boolean"}}}],"x-test-input-evidence":{"ac_compat.get_ac_compat":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/app_events":{"get":{"operationId":"get_2_2_networks_network_id_app_events","summary":"Get app events","description":"Get app events for a network.\n\nAliases: `events.get_app_events`.","tags":["events"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"style":"form","explode":true,"description":"Number of events per page.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"}},{"name":"timestamp","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Timestamp used to select app events.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["events.get_app_events"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{"page_size":{"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"required":false},"timestamp":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"page_size\": z.string().max(12).regex(/^[0-9]+$/).optional(), \"timestamp\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"events.get_app_events","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/24","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"events.get_app_events":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"page_size":"1"},"sourcePointer":"/testedInputs/events.get_app_events"}}}},"/2.2/networks/{network_id}/backup_access_points":{"get":{"operationId":"get_2_2_networks_network_id_backup_access_points","summary":"List backup access points","description":"List backup access points for a network.\n\nAliases: `backup_access_points.list`.","tags":["backup_access_points"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["backup_access_points.list"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"backup_access_points.list","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/38","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"array","itemSchemaUnknown":true,"adapterDataSchema":{"type":"array","items":{}}}],"x-test-input-evidence":{"backup_access_points.list":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/backup_access_points/ssid_discovery":{"get":{"operationId":"get_2_2_networks_network_id_backup_access_points_ssid_discovery","summary":"Get SSID discovery status","description":"Get the status of backup access point discovery.\n\nAliases: `backup_access_points.discover_ssids`.","tags":["backup_access_points"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["backup_access_points.discover_ssids"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"backup_access_points.discover_ssids","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/75","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"backup_access_points.discover_ssids":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/backupinternet":{"get":{"operationId":"get_2_2_networks_network_id_backupinternet","summary":"Get backup internet settings","description":"Get backup internet settings for a network.\n\nAliases: `backup.get_backup_internet`.","tags":["backup"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["backup.get_backup_internet"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"backup.get_backup_internet","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/15","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"backup_internet_enabled":"boolean"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"backup_internet_enabled":{"type":"boolean"}}}],"x-test-input-evidence":{"backup.get_backup_internet":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/blacklist":{"get":{"operationId":"get_2_2_networks_network_id_blacklist","summary":"Get blocked devices","description":"Get the device block list for a network.\n\nAliases: `blacklist.get_blacklist`.","tags":["blacklist"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["blacklist.get_blacklist"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"blacklist.get_blacklist","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/18","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"array","itemSchemaUnknown":true,"adapterDataSchema":{"type":"array","items":{}}}],"x-test-input-evidence":{"blacklist.get_blacklist":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/cellular_backup_events":{"get":{"operationId":"get_2_2_networks_network_id_cellular_backup_events","summary":"Get cellular backup events","description":"Get cellular backup events for a network.\n\nAliases: `backup.get_cellular_backup_events`.","tags":["backup"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["backup.get_cellular_backup_events"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"backup.get_cellular_backup_events","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/16","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"outages array","itemSchemaUnknown":true}],"x-test-input-evidence":{"backup.get_cellular_backup_events":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/cellular_backup_usage":{"get":{"operationId":"get_2_2_networks_network_id_cellular_backup_usage","summary":"Get cellular backup usage","description":"Get cellular backup data usage for a network.\n\nAliases: `backup.get_cellular_backup_usage`.","tags":["backup"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["backup.get_cellular_backup_usage"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"backup.get_cellular_backup_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/17","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"backup_usage_items array","itemSchemaUnknown":true}],"x-test-input-evidence":{"backup.get_cellular_backup_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/channel_utilization":{"get":{"operationId":"get_2_2_networks_network_id_channel_utilization","summary":"Get channel utilization","description":"Get Wi-Fi channel utilization for a time range.\n\nAliases: `events.get_channel_utilization`.","tags":["events"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"busy_threshold","in":"query","required":false,"schema":{"type":"string","maxLength":12,"pattern":"^[1-9][0-9]*$"},"style":"form","explode":true,"description":"Threshold used to identify a busy channel.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","maxLength":12,"pattern":"^[1-9][0-9]*$"}},{"name":"eero_id","in":"query","required":false,"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"style":"form","explode":true,"description":"Eero identifier.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"}},{"name":"band","in":"query","required":false,"schema":{"type":"string","enum":["band_2_4GHz","band_5GHz_full","band_5GHz_high","band_5GHz_low","band_6GHz"]},"style":"form","explode":true,"description":"Wi-Fi band to include.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","enum":["band_2_4GHz","band_5GHz_full","band_5GHz_high","band_5GHz_low","band_6GHz"]}},{"name":"granularity","in":"query","required":false,"schema":{"type":"string","maxLength":12,"pattern":"^[1-9][0-9]*$"},"style":"form","explode":true,"description":"Granularity of channel utilization data.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","maxLength":12,"pattern":"^[1-9][0-9]*$"}},{"name":"gap_data_placeholder","in":"query","required":false,"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"style":"form","explode":true,"description":"Value used for gaps in channel utilization data.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["events.get_channel_utilization"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"busy_threshold":{"schema":{"type":"string","maxLength":12,"pattern":"^[1-9][0-9]*$"},"required":false},"eero_id":{"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"required":false},"band":{"schema":{"type":"string","enum":["band_2_4GHz","band_5GHz_full","band_5GHz_high","band_5GHz_low","band_6GHz"]},"required":false},"granularity":{"schema":{"type":"string","maxLength":12,"pattern":"^[1-9][0-9]*$"},"required":false},"gap_data_placeholder":{"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"busy_threshold\": z.string().max(12).regex(/^[1-9][0-9]*$/).optional(), \"eero_id\": z.string().max(12).regex(/^[0-9]+$/).optional(), \"band\": z.enum([\"band_2_4GHz\", \"band_5GHz_full\", \"band_5GHz_high\", \"band_5GHz_low\", \"band_6GHz\"]).optional(), \"granularity\": z.string().max(12).regex(/^[1-9][0-9]*$/).optional(), \"gap_data_placeholder\": z.string().max(12).regex(/^[0-9]+$/).optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"events.get_channel_utilization","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/67","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"events.get_channel_utilization":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/data_usage":{"get":{"operationId":"get_2_2_networks_network_id_data_usage","summary":"Get network data usage","description":"Get network data usage for a time range.\n\nAliases: `data_usage.get_data_usage`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_data_usage"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_data_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/57","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_data_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/breakdown":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_breakdown","summary":"Get data usage breakdown","description":"Get a breakdown of network data usage.\n\nAliases: `data_usage.get_breakdown`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":false,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_breakdown"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":false},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]).optional(), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_breakdown","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/58","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_breakdown":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/devices":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_devices","summary":"Get device data usage","description":"Get data usage across network devices.\n\nAliases: `data_usage.get_devices_usage`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":false,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"profile_id","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"},"style":"form","explode":true,"description":"Profile identifier.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_devices_usage"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":false},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false},"profile_id":{"schema":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]).optional(), \"timezone\": text.optional(), \"profile_id\": identifier.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_devices_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/59","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_devices_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/devices/{device_mac}":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_devices_device_mac","summary":"Get data usage for a device","description":"Get data usage for one device.\n\nAliases: `data_usage.get_device_usage`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"device_mac","in":"path","required":true,"schema":{"type":"string"},"description":"Device MAC address.","x-adapter-validation":{"type":"string","pattern":"^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_device_usage"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_device_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/60","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_device_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/eeros":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_eeros","summary":"Get data usage across eeros","description":"Get data usage across the eeros in a network.\n\nAliases: `data_usage.get_eeros_usage`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_eeros_usage"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_eeros_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/61","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_eeros_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/eeros/summary":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_eeros_summary","summary":"Get eero data usage summary","description":"Get a summary of eero data usage.\n\nAliases: `data_usage.get_eeros_summary`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_eeros_summary"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_eeros_summary","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/62","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_eeros_summary":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/eeros/{eero_id}":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_eeros_eero_id","summary":"Get data usage for an eero","description":"Get data usage for one eero.\n\nAliases: `data_usage.get_eero_usage`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"eero_id","in":"path","required":true,"schema":{"type":"string"},"description":"Eero identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_eero_usage"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_eero_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/63","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_eero_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/profiles/{profile_id}":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_profiles_profile_id","summary":"Get profile data usage","description":"Get data usage for a profile.\n\nAliases: `data_usage.get_profile_usage`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"profile_id","in":"path","required":true,"schema":{"type":"string"},"description":"Profile identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_profile_usage"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_profile_usage","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/64","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_profile_usage":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/report_settings":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_report_settings","summary":"Get report settings","description":"Get data usage report settings.\n\nAliases: `data_usage.get_report_settings`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_report_settings"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_report_settings","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/19","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"cadence":"string","notification_day":"number"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"cadence":{"type":"string"},"notification_day":{"type":"number"}}}],"x-test-input-evidence":{"data_usage.get_report_settings":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/data_usage/unprofiled/devices":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_unprofiled_devices","summary":"Get usage for unassigned devices","description":"Get data usage for devices without a profile.\n\nAliases: `data_usage.get_unprofiled_devices`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":false,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_unprofiled_devices"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":false},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]).optional(), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_unprofiled_devices","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/65","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_unprofiled_devices":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/data_usage/unprofiled/summary":{"get":{"operationId":"get_2_2_networks_network_id_data_usage_unprofiled_summary","summary":"Get unassigned device usage summary","description":"Get a data usage summary for devices without a profile.\n\nAliases: `data_usage.get_unprofiled_summary`.","tags":["data_usage"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"timezone","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Time zone for the results.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["data_usage.get_unprofiled_summary"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"timezone":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"timezone\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"data_usage.get_unprofiled_summary","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/66","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"data_usage.get_unprofiled_summary":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","timezone":"UTC"},"sourcePointer":"/timeQuery","limit":"The saved evidence records this common query for usage reads. It does not record optional profile_id tests."}}}},"/2.2/networks/{network_id}/devices":{"get":{"operationId":"get_2_2_networks_network_id_devices","summary":"List devices","description":"List devices on a network.\n\nAliases: `devices.get_devices`.","tags":["devices"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"thread","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]},"style":"form","explode":true,"description":"Filter devices by Thread status.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","enum":["true","false"]}},{"name":"proxied_node","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]},"style":"form","explode":true,"description":"Filter devices by proxied node status.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","enum":["true","false"]}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["devices.get_devices"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{"thread":{"schema":{"type":"string","enum":["true","false"]},"required":false},"proxied_node":{"schema":{"type":"string","enum":["true","false"]},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"thread\": z.enum([\"true\", \"false\"]).optional(), \"proxied_node\": z.enum([\"true\", \"false\"]).optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"devices.get_devices","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/5","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"devices.get_devices":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/devices/{mac}":{"get":{"operationId":"get_2_2_networks_network_id_devices_mac","summary":"Get a device","description":"Get details for a network device.\n\nAliases: `devices.get_device`.","tags":["devices"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"mac","in":"path","required":true,"schema":{"type":"string"},"description":"Device MAC address.","x-adapter-validation":{"type":"string","pattern":"^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["devices.get_device"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"devices.get_device","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/39","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"devices.get_device":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/devices/{mac}/labels":{"get":{"operationId":"get_2_2_networks_network_id_devices_mac_labels","summary":"Get device labels","description":"Get labels for a network device.\n\nAliases: `devices.get_device_labels`.","tags":["devices"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"mac","in":"path","required":true,"schema":{"type":"string"},"description":"Device MAC address.","x-adapter-validation":{"type":"string","pattern":"^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["devices.get_device_labels"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"devices.get_device_labels","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/40","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"type_label":"null","make_label":"null","model_label":"null","version_label":"null"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"type_label":{"x-observed-type":"null","description":"Only null was observed. The populated type is unknown."},"make_label":{"x-observed-type":"null","description":"Only null was observed. The populated type is unknown."},"model_label":{"x-observed-type":"null","description":"Only null was observed. The populated type is unknown."},"version_label":{"x-observed-type":"null","description":"Only null was observed. The populated type is unknown."}}}],"x-test-input-evidence":{"devices.get_device_labels":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/diagnostics":{"get":{"operationId":"get_2_2_networks_network_id_diagnostics","summary":"Get network diagnostics","description":"Get diagnostic information for a network.\n\nAliases: `diagnostics.get_diagnostics`.","tags":["diagnostics"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["diagnostics.get_diagnostics"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"diagnostics.get_diagnostics","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/20","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"status":"string"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"status":{"type":"string"}}}],"x-test-input-evidence":{"diagnostics.get_diagnostics":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/dns_policies/advanced_content_filter":{"get":{"operationId":"get_2_2_networks_network_id_dns_policies_advanced_content_filter","summary":"Get advanced content filters","description":"Get advanced content filter settings for a network.\n\nAliases: `dns_policies.get_advanced_content_filter`.","tags":["dns_policies"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["dns_policies.get_advanced_content_filter"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"dns_policies.get_advanced_content_filter","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/21","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"dns_policies.get_advanced_content_filter":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/dns_policies/profiles/{profile_id}/applications":{"get":{"operationId":"get_2_2_networks_network_id_dns_policies_profiles_profile_id_applications","summary":"Get profile application policies","description":"Get application policies for a profile.\n\nAliases: `dns_policies.get_profile_applications`.","tags":["dns_policies"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"profile_id","in":"path","required":true,"schema":{"type":"string"},"description":"Profile identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["dns_policies.get_profile_applications"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"dns_policies.get_profile_applications","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/43","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"dns_policies.get_profile_applications":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/eeros":{"get":{"operationId":"get_2_2_networks_network_id_eeros","summary":"List network eeros","description":"List the eeros in a network.\n\nAliases: `eeros.get_eeros`.","tags":["eeros"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["eeros.get_eeros"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"eeros.get_eeros","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/3","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"eeros.get_eeros":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/fast_transition":{"get":{"operationId":"get_2_2_networks_network_id_fast_transition","summary":"Get fast transition settings","description":"Get fast transition settings for Wi-Fi roaming.\n\nAliases: `security.get_fast_transition`.","tags":["security"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["security.get_fast_transition"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"security.get_fast_transition","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/37","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"fast_transition":"boolean"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"fast_transition":{"type":"boolean"}}}],"x-test-input-evidence":{"security.get_fast_transition":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/forwards":{"get":{"operationId":"get_2_2_networks_network_id_forwards","summary":"List port forwards","description":"List port forwarding rules for a network.\n\nAliases: `forwards.get_forwards`.","tags":["forwards"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["forwards.get_forwards"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"forwards.get_forwards","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/9","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"array","itemSchemaUnknown":true,"adapterDataSchema":{"type":"array","items":{}}}],"x-test-input-evidence":{"forwards.get_forwards":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/guestnetwork":{"get":{"operationId":"get_2_2_networks_network_id_guestnetwork","summary":"Get guest network settings","description":"Get guest network settings.\n\nAliases: `networks.get_guest_network`.","tags":["networks"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["networks.get_guest_network"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"networks.get_guest_network","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/25","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"networks.get_guest_network":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/insights":{"get":{"operationId":"get_2_2_networks_network_id_insights","summary":"Get network insights","description":"Get network insights for a time range and insight type.\n\nAliases: `insights.get_insights`.","tags":["insights"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"insight_type","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Type of insight to retrieve.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["insights.get_insights"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"insight_type":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"insight_type\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"insights.get_insights","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/69","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"insights.get_insights":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","insight_type":"blocked"},"sourcePointer":"/insightQuery","sourceObservedOtherValues":["adblock","blocked","inspected"],"limit":"Only blocked with the saved daily dates passed. Other source values are not live verified. No timezone query field is accepted by the adapter."}}}},"/2.2/networks/{network_id}/insights/devices":{"get":{"operationId":"get_2_2_networks_network_id_insights_devices","summary":"Get device insights","description":"Get insights across network devices.\n\nAliases: `insights.get_devices_insights`.","tags":["insights"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"insight_type","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Type of insight to retrieve.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["insights.get_devices_insights"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"insight_type":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"insight_type\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"insights.get_devices_insights","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/70","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"insights.get_devices_insights":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","insight_type":"blocked"},"sourcePointer":"/insightQuery","sourceObservedOtherValues":["adblock","blocked","inspected"],"limit":"Only blocked with the saved daily dates passed. Other source values are not live verified. No timezone query field is accepted by the adapter."}}}},"/2.2/networks/{network_id}/insights/devices/{mac}":{"get":{"operationId":"get_2_2_networks_network_id_insights_devices_mac","summary":"Get insights for a device","description":"Get insights for one device.\n\nAliases: `insights.get_device_insights`.","tags":["insights"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"mac","in":"path","required":true,"schema":{"type":"string"},"description":"Device MAC address.","x-adapter-validation":{"type":"string","pattern":"^(?:[0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"insight_type","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Type of insight to retrieve.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["insights.get_device_insights"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"insight_type":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"insight_type\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"insights.get_device_insights","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/71","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"insights.get_device_insights":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","insight_type":"blocked"},"sourcePointer":"/insightQuery","sourceObservedOtherValues":["adblock","blocked","inspected"],"limit":"Only blocked with the saved daily dates passed. Other source values are not live verified. No timezone query field is accepted by the adapter."}}}},"/2.2/networks/{network_id}/insights/profiles":{"get":{"operationId":"get_2_2_networks_network_id_insights_profiles","summary":"Get profile insights","description":"Get insights across network profiles.\n\nAliases: `insights.get_profiles_insights`.","tags":["insights"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"insight_type","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Type of insight to retrieve.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["insights.get_profiles_insights"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"insight_type":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"insight_type\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"insights.get_profiles_insights","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/72","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"insights.get_profiles_insights":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","insight_type":"blocked"},"sourcePointer":"/insightQuery","sourceObservedOtherValues":["adblock","blocked","inspected"],"limit":"Only blocked with the saved daily dates passed. Other source values are not live verified. No timezone query field is accepted by the adapter."}}}},"/2.2/networks/{network_id}/insights/profiles/{profile}":{"get":{"operationId":"get_2_2_networks_network_id_insights_profiles_profile","summary":"Get insights for a profile","description":"Get insights for one profile.\n\nAliases: `insights.get_profile_insights`.","tags":["insights"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"Profile identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"insight_type","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Type of insight to retrieve.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["insights.get_profile_insights"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"insight_type":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"insight_type\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"insights.get_profile_insights","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/73","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"insights.get_profile_insights":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","insight_type":"blocked"},"sourcePointer":"/insightQuery","sourceObservedOtherValues":["adblock","blocked","inspected"],"limit":"Only blocked with the saved daily dates passed. Other source values are not live verified. No timezone query field is accepted by the adapter."}}}},"/2.2/networks/{network_id}/insights/profiles/{profile}/devices":{"get":{"operationId":"get_2_2_networks_network_id_insights_profiles_profile_devices","summary":"Get profile device insights","description":"Get device insights within a profile.\n\nAliases: `insights.get_profile_devices_insights`.","tags":["insights"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"profile","in":"path","required":true,"schema":{"type":"string"},"description":"Profile identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"start","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"end","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the time range.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"cadence","in":"query","required":true,"schema":{"type":"string","enum":["daily","hourly"]},"style":"form","explode":true,"description":"Time interval used to group results.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","enum":["daily","hourly"]}},{"name":"insight_type","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Type of insight to retrieve.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["insights.get_profile_devices_insights"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"start":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"end":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"cadence":{"schema":{"type":"string","enum":["daily","hourly"]},"required":true},"insight_type":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"start\": text, \"end\": text, \"cadence\": z.enum([\"daily\", \"hourly\"]), \"insight_type\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"insights.get_profile_devices_insights","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/74","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"insights.get_profile_devices_insights":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"start":"2026-10-27T00:00:00Z","end":"2026-10-28T00:00:00Z","cadence":"daily","insight_type":"blocked"},"sourcePointer":"/insightQuery","sourceObservedOtherValues":["adblock","blocked","inspected"],"limit":"Only blocked with the saved daily dates passed. Other source values are not live verified. No timezone query field is accepted by the adapter."}}}},"/2.2/networks/{network_id}/invites":{"get":{"operationId":"get_2_2_networks_network_id_invites","summary":"List network invitations","description":"List invitations to join a network.\n\nAliases: `members.get_invites`.","tags":["members"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["members.get_invites"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"members.get_invites","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/55","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"members.get_invites":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/members":{"get":{"operationId":"get_2_2_networks_network_id_members","summary":"List network members","description":"List members of a network.\n\nAliases: `members.get_members`.","tags":["members"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["members.get_members"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"members.get_members","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/54","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"members.get_members":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/network_scan":{"get":{"operationId":"get_2_2_networks_network_id_network_scan","summary":"Get network scan","description":"Get network scan information.\n\nAliases: `events.get_network_scan`.","tags":["events"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["events.get_network_scan"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"events.get_network_scan","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/76","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"events.get_network_scan":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/notifications":{"get":{"operationId":"get_2_2_networks_network_id_notifications","summary":"Get notification settings","description":"Get notification settings for a network.\n\nAliases: `notifications.get_settings`.","tags":["notifications"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["notifications.get_settings"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"notifications.get_settings","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/11","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"notifications.get_settings":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/notifications/has_unread":{"get":{"operationId":"get_2_2_networks_network_id_notifications_has_unread","summary":"Get unread notification status","description":"Check whether a network has unread notifications.\n\nAliases: `notifications.has_unread`.","tags":["notifications"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["notifications.has_unread"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"notifications.has_unread","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/27","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"has_unread":"boolean","last_read_at":"string"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"has_unread":{"type":"boolean"},"last_read_at":{"type":"string"}}}],"x-test-input-evidence":{"notifications.has_unread":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/notifications_history":{"get":{"operationId":"get_2_2_networks_network_id_notifications_history","summary":"Get notification history","description":"Get notification history for a network.\n\nAliases: `notifications.get_history`.","tags":["notifications"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"timestamp","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Timestamp used to select notification history.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["notifications.get_history"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{"timestamp":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"timestamp\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"notifications.get_history","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/26","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"notifications.get_history":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/ouicheck":{"get":{"operationId":"get_2_2_networks_network_id_ouicheck","summary":"Get OUI check","description":"Get an OUI check for the supplied serial number and version.\n\nAliases: `ouicheck.get_ouicheck`.","tags":["ouicheck"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"serial","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Serial number for the OUI check.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Version for the OUI check.","x-server-requiredness":"unknown","x-adapter-required":true,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["ouicheck.get_ouicheck"],"x-adapter-query-contract":{"objectRequired":true,"additionalProperties":false,"fields":{"serial":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true},"version":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":true}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"serial\": text, \"version\": text})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"ouicheck.get_ouicheck","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/56","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"ouicheck.get_ouicheck":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/permissions":{"get":{"operationId":"get_2_2_networks_network_id_permissions","summary":"Get network permissions","description":"Get permissions for a network.\n\nAliases: `permissions.get_permissions`.","tags":["permissions"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["permissions.get_permissions"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"permissions.get_permissions","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/10","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"permissions.get_permissions":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/power_saving/schedules":{"get":{"operationId":"get_2_2_networks_network_id_power_saving_schedules","summary":"List power saving schedules","description":"List power saving schedules for a network.\n\nAliases: `power_saving.get_schedules`.","tags":["power_saving"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["power_saving.get_schedules"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"power_saving.get_schedules","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/12","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"schedules array","itemSchemaUnknown":true}],"x-test-input-evidence":{"power_saving.get_schedules":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/profiles":{"get":{"operationId":"get_2_2_networks_network_id_profiles","summary":"List profiles","description":"List profiles in a network.\n\nAliases: `profiles.get_profiles`.","tags":["profiles"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["profiles.get_profiles"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"profiles.get_profiles","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/6","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"profiles.get_profiles":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/profiles/{profile_id}":{"get":{"operationId":"get_2_2_networks_network_id_profiles_profile_id","summary":"Get a profile","description":"Get a profile and its assigned devices.\n\nAliases: `profiles.get_profile`, `profiles.get_profile_devices`.","tags":["profiles"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"profile_id","in":"path","required":true,"schema":{"type":"string"},"description":"Profile identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["profiles.get_profile","profiles.get_profile_devices"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"profiles.get_profile","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/41","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."},{"alias":"profiles.get_profile_devices","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/42","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"profiles.get_profile":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."},"profiles.get_profile_devices":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/reservations":{"get":{"operationId":"get_2_2_networks_network_id_reservations","summary":"List IP reservations","description":"List IP address reservations for a network.\n\nAliases: `reservations.get_reservations`.","tags":["reservations"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["reservations.get_reservations"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"reservations.get_reservations","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/8","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","emptyResult":"array","itemSchemaUnknown":true,"adapterDataSchema":{"type":"array","items":{}}}],"x-test-input-evidence":{"reservations.get_reservations":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/routing":{"get":{"operationId":"get_2_2_networks_network_id_routing","summary":"Get routing settings","description":"Get routing settings for a network.\n\nAliases: `routing.get_routing`.","tags":["routing"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["routing.get_routing"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"routing.get_routing","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/13","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"routing.get_routing":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/speedtest":{"get":{"operationId":"get_2_2_networks_network_id_speedtest","summary":"Get speed tests","description":"Get speed test history for a network.\n\nAliases: `networks.get_speed_tests`.","tags":["networks"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"limit","in":"query","required":false,"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"style":"form","explode":true,"description":"Maximum number of speed tests to return.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"}},{"name":"startTime","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"Start of the speed test time range.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}},{"name":"endTime","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":1024},"style":"form","explode":true,"description":"End of the speed test time range.","x-server-requiredness":"unknown","x-adapter-required":false,"x-adapter-validation":{"type":"string","minLength":1,"maxLength":1024}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["networks.get_speed_tests"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{"limit":{"schema":{"type":"string","maxLength":12,"pattern":"^[0-9]+$"},"required":false},"startTime":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false},"endTime":{"schema":{"type":"string","minLength":1,"maxLength":1024},"required":false}},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({\"limit\": z.string().max(12).regex(/^[0-9]+$/).optional(), \"startTime\": text.optional(), \"endTime\": text.optional()})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"networks.get_speed_tests","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/4","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"up_mbps":"number","down_mbps":"number","date":"string"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"up_mbps":{"type":"number"},"down_mbps":{"type":"number"},"date":{"type":"string"}}}],"x-test-input-evidence":{"networks.get_speed_tests":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","savedTestedQuery":{"limit":"1"},"sourcePointer":"/testedInputs/networks.get_speed_tests"}}}},"/2.2/networks/{network_id}/subnets_config":{"get":{"operationId":"get_2_2_networks_network_id_subnets_config","summary":"Get subnet configuration","description":"Get subnet configuration for a network.\n\nAliases: `subnets.get_config`.","tags":["subnets"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["subnets.get_config"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"subnets.get_config","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/28","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"subnets.get_config":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/subnets_config/{subnet_id}/dns_policies/content_filters":{"get":{"operationId":"get_2_2_networks_network_id_subnets_config_subnet_id_dns_policies_content_filters","summary":"Get subnet content filters","description":"Get content filter policies for a subnet.\n\nAliases: `subnets.get_content_filters`.","tags":["subnets"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}},{"name":"subnet_id","in":"path","required":true,"schema":{"type":"string"},"description":"Subnet identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["subnets.get_content_filters"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"subnets.get_content_filters","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/47","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"subnets.get_content_filters":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/support":{"get":{"operationId":"get_2_2_networks_network_id_support","summary":"Get support information","description":"Get support information for a network.\n\nAliases: `support.get_support`.","tags":["support"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["support.get_support"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"support.get_support","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/29","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"support_phone":"string","contact_url":"string","help_url":"string","email_web_form_url":"string","name":"string"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"support_phone":{"type":"string"},"contact_url":{"type":"string"},"help_url":{"type":"string"},"email_web_form_url":{"type":"string"},"name":{"type":"string"}}}],"x-test-input-evidence":{"support.get_support":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/thread":{"get":{"operationId":"get_2_2_networks_network_id_thread","summary":"Get Thread settings","description":"Get Thread settings for a network.\n\nAliases: `thread.get_thread`.","tags":["thread"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["thread.get_thread"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"thread.get_thread","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/30","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"enable_credential_syncing":"boolean"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"enable_credential_syncing":{"type":"boolean"}}}],"x-test-input-evidence":{"thread.get_thread":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/updates":{"get":{"operationId":"get_2_2_networks_network_id_updates","summary":"Get update information","description":"Get software update information for a network.\n\nAliases: `updates.get_updates`.","tags":["updates"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["updates.get_updates"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"updates.get_updates","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/7","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"preferred_update_hour":"number","min_required_firmware":"string","target_firmware":"string","update_to_firmware":"string","update_required":"boolean","can_update_now":"boolean","has_update":"boolean","update_status":"null","scheduled_update_time":"null","last_update_started":"string","last_user_update":"object","manifest_resource":"string"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"preferred_update_hour":{"type":"number"},"min_required_firmware":{"type":"string"},"target_firmware":{"type":"string"},"update_to_firmware":{"type":"string"},"update_required":{"type":"boolean"},"can_update_now":{"type":"boolean"},"has_update":{"type":"boolean"},"update_status":{"x-observed-type":"null","description":"Only null was observed. The populated type is unknown."},"scheduled_update_time":{"x-observed-type":"null","description":"Only null was observed. The populated type is unknown."},"last_update_started":{"type":"string"},"last_user_update":{"type":"object"},"manifest_resource":{"type":"string"}}}],"x-test-input-evidence":{"updates.get_updates":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/networks/{network_id}/wpa3_per_band":{"get":{"operationId":"get_2_2_networks_network_id_wpa3_per_band","summary":"Get WPA3 settings by band","description":"Get WPA3 security settings for each Wi-Fi band.\n\nAliases: `wpa3.get_wpa3_per_band`.","tags":["wpa3"],"parameters":[{"name":"network_id","in":"path","required":true,"schema":{"type":"string"},"description":"Network identifier.","x-adapter-validation":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$"}}],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["wpa3.get_wpa3_per_band"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"wpa3.get_wpa3_per_band","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/31","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types.","observedFieldTypes":{"band_2_4_ghz":"string","band_5_ghz":"string","band_6_ghz":"string"},"observedFieldLocation":"The saved field list does not establish root shape or nesting.","adapterObservedFieldSchemas":{"band_2_4_ghz":{"type":"string"},"band_5_ghz":{"type":"string"},"band_6_ghz":{"type":"string"}}}],"x-test-input-evidence":{"wpa3.get_wpa3_per_band":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}},"/2.2/premium/customer":{"get":{"operationId":"get_2_2_premium_customer","summary":"Get premium customer","description":"Get premium customer information for the account.\n\nAliases: `entitlements.get_premium_customer`.","tags":["entitlements"],"parameters":[],"responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{}}}}},"x-executor-aliases":["entitlements.get_premium_customer"],"x-adapter-query-contract":{"objectRequired":false,"additionalProperties":false,"fields":{},"serialization":"URLSearchParams.set(name, String(value))","sourceExpression":"z.strictObject({})","limit":"Required fields, enums, patterns, and size limits are adapter rules. They do not prove server requirements."},"x-adapter-observations":[{"alias":"entitlements.get_premium_customer","status":200,"source":"eero-live-read-evidence.json","sourcePointer":"/results/35","limit":"These fields describe projected and redacted adapter data from one test. They are not an HTTP response schema. No required fields or container shape are established by a saved field list. The lists are incomplete. Null observations do not establish populated types. Empty arrays do not establish item types."}],"x-test-input-evidence":{"entitlements.get_premium_customer":{"privateValuesIncluded":false,"pathValues":"Existing account resources. Exact values are not saved.","limit":"No exact query values are saved for this alias. A successful result does not prove each optional query field or omission."}}}}},"x-evidence":{"testDate":"2026-10-28","successfulAliasCount":72,"distinctEndpointCount":66,"failedAliasCount":5,"outOfScopeWriteAliasCount":91,"provenanceFile":"provenance.json","reportedFinalDiagnosticDeployment":"dpl_9e493d89-a9da-4485-9c46-bca307524443","reportedFinalDiagnosticSourceCommit":"9631b9c575587c53e11f5b3ca9067c91ce6239d9"}}