---
title: "Get device IP addresses (for splash poll)"
method: GET
path: "/api/v2/network/ip-addresses"
tags: ["network"]
---

# Get device IP addresses (for splash poll)

`GET /api/v2/network/ip-addresses`

Lightweight IP-list endpoint for the splash page to poll.

Unauth'd because the splash page itself is unauth'd and the viewer
isn't a credentialed client. The data here is already disclosed by
/splash-page rendering — there's no new exposure.

Narrow on purpose: only IPs, no diagnostics. /api/v2/info covers
the "everything about the device" case but is auth'd and does
heavier work (psutil, statvfs, version checks) that would compound
on a 2-second poll. Don't bolt onto this; add a sibling endpoint
if a different unauth'd value is ever needed.

**KNOWN LIMITATION (deferred to broader auth work).** This GET has
a side effect — ``_resolve_node_ip`` calls ``_publish_refresh()``
on cache miss / hit / empty-list, which publishes ``hostcmd:
set_ip_addresses`` to host_agent. ``host_agent.set_ip_addresses``
in turn does an internet probe (``requests.get`` to 1.1.1.1 with
a 10×1s tenacity retry). An unauthenticated LAN client can drive
that side effect at the debounce-bounded rate (one publish per
``_IP_REFRESH_DEBOUNCE_S``).

The mitigations already in place keep blast radius bounded:

  * SETNX-debounced publishes (only one refresh per 12s window
    regardless of poll volume),
  * the response body carries no data not already disclosed by
    the splash page itself,
  * host_agent's own retry/throttle behavior caps the
    downstream cost.

The proper fix is a shared internal-auth gate (matching the one
on AssetRecheckViewV2) — but the splash polling endpoint is
consumed by the viewer's webview from the device's local
network with no way to attach BasicAuth, so internal-auth here
needs to be designed alongside the broader auth rework. Tracked
in the same followup as AssetRecheckViewV2's gating.

## Response `200`

- object
  - `ip_addresses` string[]

---

[API](https://skmtc.dev/screenly/apis/anthias-api.md) · [All operations](https://skmtc.dev/screenly/apis/anthias-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/screenly/anthias-api/revisions/db7a06ac59cc/schema)
