The IPSC3view API is a public read-only dashboard snapshot endpoint. It is used by the IPSC3view terminal client, the IPSC3qt desktop client, and can be used by compatible external tools that need current IPSC3 network status.
GET https://ipsc3.vkdmr.com/api/ipsc3view
The response is JSON and is returned with Cache-Control: no-store.
Clients should poll at a sensible interval rather than assuming cached data.
Security-sensitive peer metadata is deliberately excluded. Responses never include raw MMDVM options, dashboard tokens, authentication material, or current peer IP addresses and ports.
Bulk user-directory downloads are intentionally exposed as a separate endpoint so normal IPSC3view/IPSC3qt live polling does not carry a large payload.
GET https://ipsc3.vkdmr.com/api/ipsc3view/known-users
| Parameter | Description |
|---|---|
limit |
Optional number of last-heard rows to return. Default is 30. Minimum is 1. Maximum is 100. |
clientVersion |
Optional client version string used for lightweight viewer heartbeat reporting. |
curl 'https://ipsc3.vkdmr.com/api/ipsc3view?limit=30&clientVersion=1.0.40'
/api/ipsc3view/known-users returns a bare JSON array of RadioID
user rows for radios seen on this IPSC3 server in the last 12 months. The
callsign filter is the configured stats_callsign_prefix value
from the Configuration screen, defaulting to VK.
curl 'https://ipsc3.vkdmr.com/api/ipsc3view/known-users'
The endpoint is public and read-only. It is intended for occasional downloads
or sync jobs, not rapid polling. Responses use Cache-Control:
no-store and include these headers:
| Header | Description |
|---|---|
X-IPSC3-Known-Users-Window-Months | Lookback window, currently 12. |
X-IPSC3-Stats-Callsign-Prefix | Configured callsign prefix used to filter RadioID rows. |
| Field | Description |
|---|---|
radio_id | DMR RadioID. |
database_id | RadioID database internal ID. |
callsign | RadioID callsign. |
full_name | RadioID full name field. |
first_name | RadioID first name field. |
surname | RadioID surname field. |
city | RadioID city field. |
state | RadioID state field. |
country | RadioID country field. |
has_valid_callsign | RadioID validity flag as stored locally. |
has_valid_email | RadioID email validity flag as stored locally. |
source_synced_at_epoch | Unix epoch seconds for when this RadioID row was last imported. |
first_seen_at_epoch | First IPSC3 call event seen for this radio inside the 12-month window. |
last_seen_at_epoch | Most recent IPSC3 call event seen for this radio inside the 12-month window. |
seen_event_count | Number of matching IPSC3 call-event rows inside the 12-month window. |
| Field | Description |
|---|---|
generatedAt | ISO timestamp for when this snapshot was generated. |
generatedAtEpoch | Snapshot generation time as Unix epoch seconds. |
version | IPSC3 server/dashboard version. |
ipsc3viewVersion | Current expected IPSC3view client version. |
ipsc3qtVersion | Current expected IPSC3qt client version. |
overview | Summary counts, live talkgroup board rows, and grouped dynamic camps. |
lastHeard | Array of recent radio activity rows. |
roaming | Roaming dwell configuration and current roaming radio rows. |
poc | Array of active POC client rows with public device and talkgroup metadata. |
trunks | Array of MMDVM/OpenBridge trunk connection rows. |
talkgroups | Array of configured talkgroup rows. |
repeaters | Array of repeater endpoint rows. |
hotspots | Array of hotspot endpoint rows. |
POC-originated rows use protocol: "poc". Roaming rows also expose
location_type: "POC" and location_name: "IPSC3 POC".
poc contains one row for each active POC client instance inside
the current UDP/RTP presence lease. Multiple devices may therefore appear
with the same Radio ID. Session identifiers, passwords, and network
endpoints are not exposed.
| Field | Description |
|---|---|
radio_id | DMR Radio ID used by the POC client. |
callsign | Resolved callsign, if known. |
radio_name | Resolved RadioID name, if known. |
client | Client software family. |
client_version | Client software version. |
platform | Client platform. |
android_version | Android version when supplied. |
device_model | Client device model. |
manufacturer | Client device manufacturer. |
app_package | Application package identifier. |
screen | Reported screen dimensions when supplied. |
battery_percent | Reported remaining battery percentage. |
selected_talkgroup | Currently selected talkgroup. |
recovery_mode | Current RTP recovery state: legacy, normal, or degraded. A degraded session is shown as LOSS on the web POC page. |
talkgroup_name | Resolved talkgroup name. |
connected_at_epoch | Control-session connection time in Unix epoch seconds. |
last_udp_at_epoch | Most recent POC UDP/RTP presence time in Unix epoch seconds. |
| Field | Description |
|---|---|
peers | Total configured peers. |
connectedPeers | Peers currently considered connected. |
talkgroups | Total configured talkgroups. |
activeTalkgroups | Current active talkgroup count, excluding the scan talkgroup. |
boardRows | Live talkgroup status rows used by overview displays. |
campedTalkgroups | Dynamic talkgroups with currently camped DMR endpoints or POC radios. The configured scan talkgroup is excluded. |
overview.campedTalkgroups groups current dynamic camps by
talkgroup. DMR members use the callsign of the radio that established or
most recently refreshed the camp when that identity is available, with the
repeater or hotspot callsign retained only as a fallback. POC members use the
RadioID callsign resolved for the connected client.
| Field | Description |
|---|---|
talkgroup | Dynamic talkgroup number. |
name | Configured talkgroup display name. |
timeslots | Sorted array of time slots represented by the current camps. |
members | Deduplicated array of camped callsign/source objects. |
Each member contains callsign, endpointCallsign, and
sourceType. sourceType is dmr for
repeaters and hotspots or poc for a POC client. This allows
clients to render both identities, for example
VK2RHT - VK2XYA or POC - VK2FLY.
overview.boardRows is a short-lived live display feed. Rows may
appear or disappear quickly as calls start, stop, or age out.
| Field | Description |
|---|---|
talkgroup | Active talkgroup number. |
name | Talkgroup display name. |
configured_slot | Configured default time slot. |
routing_mode | Talkgroup routing mode. |
active_protocol | Protocol currently sourcing the activity. |
source_id | Radio ID of the current or most recent source. |
source_callsign | Resolved source callsign, if known. |
source_name | Resolved source name, if known. |
active_timeslot | Active time slot. |
age_seconds | Seconds since last activity for that row. |
stream_id | DMR stream identifier as a string. |
packet_count | Packet count seen for the active call. |
peer_callsign | Peer callsign associated with the source. |
peer_kind | Peer kind, such as mmdvm_master or openbridge. |
lastHeard returns recent radio activity. The number of rows is
controlled by the limit query parameter.
| Field | Description |
|---|---|
radio_id | Source radio ID. |
radio_callsign | Resolved callsign, if known. |
radio_name | Resolved first/name field, if known. |
protocol | Protocol or source path. |
peer_callsign | Repeater, hotspot, or trunk callsign/name. |
peer_kind | Peer kind. |
destination_talkgroup | Destination talkgroup for group calls. |
destination_talkgroup_name | Resolved talkgroup name, if known. |
destination_user_id | Destination radio ID for private calls or private data. |
timeslot | DMR time slot. |
call_type | Call type, such as group_voice, private_voice, or private_data. |
last_seen_at_epoch | Last activity time as Unix epoch seconds. |
duration_seconds | Call duration when known. |
private_data_packet_count | Packet count for private data calls when known. |
private_data_rx_bytes | Received bytes for private data calls when known. |
private_data_tx_bytes | Transmitted bytes for private data calls when known. |
| Field | Description |
|---|---|
talkgroup | Talkgroup number. |
name | Talkgroup name. |
default_slot | Configured default time slot. |
routing_mode | Routing mode, usually static or dynamic. |
camp_timeout_seconds | Dynamic camp timeout for the talkgroup. |
listen_only | Boolean. If true, endpoint-originated calls are blocked with feedback. |
trunk_enabled | Boolean. Whether this talkgroup can route to trunks. |
trunk_links_configured_count | Number of per-talkgroup trunk link rules configured. |
enabled_trunks | Comma-separated trunk names enabled for this talkgroup. |
enabled_trunk_peer_ids | Array of enabled trunk peer IDs. |
active_source_id | Current source radio ID when the talkgroup is active. |
source_callsign | Current source callsign when active. |
source_name | Current source name when active. |
trunk_summary | Display summary of trunk availability. |
repeaters and hotspots share the same general row
shape. Repeaters include IPSC, Hytera, and MMDVM peers manually marked as
repeaters. Hotspots are normal MMDVM hotspot clients.
| Field | Description |
|---|---|
id | Internal peer row ID. |
peer_key | Stable peer key string. |
kind | Peer kind, such as ipsc_repeater, hytera_repeater, or mmdvm_hotspot. |
dashboard_role | Dashboard role override, if present. |
non_standard_repeater | Flag for manually marked non-standard repeaters. |
radio_id | Peer radio ID. |
connection_role | client for repeaters and hotspots. |
callsign | Configured or resolved callsign. |
display_name | Display name used by dashboard clients. |
peer_display_name | Raw peer display name. |
homebrew_repeater | Flag for MMDVM peers treated as repeaters. |
enabled | Whether the peer is enabled. |
connected | Whether the peer is currently connected. |
site_name | Site information. |
club_name | Club name, if configured. |
rx_freq | Receive frequency for MMDVM peers, if known. |
tx_freq | Transmit frequency for MMDVM peers, if known. |
slots | Slot capability for MMDVM peers. |
software_id | MMDVM software ID, if provided. |
package_id | MMDVM package ID, if provided. |
description | Peer description, if provided. |
url | Peer URL, if provided. |
location | MMDVM location text, if provided. |
sandbag_enabled | Whether scan mode is enabled for the endpoint. |
sandbag_active | Whether scan mode is currently active. |
last_seen_at_epoch | Last packet time as Unix epoch seconds. |
rx_packets | Received packet counter. |
tx_packets | Transmitted packet counter. |
simplex | Boolean derived from frequency/slot data. |
slot_activity | Object keyed by slot number containing live RX/TX activity. |
camps | Array of currently camped dynamic talkgroups for the endpoint. |
slot_activity is keyed by slot number, usually "1"
and/or "2". Values describe current display activity for that
slot.
| Field | Description |
|---|---|
talkgroup | Active talkgroup, if a group call. |
is_direct | Boolean. True for private calls. |
destination_user_id | Destination radio ID for private calls. |
source_id | Source radio ID. |
source_callsign | Resolved source callsign. |
source_name | Resolved source name. |
stream_id | DMR stream identifier. |
age_seconds | Display age or duration counter. |
last_ber | Last BER value for MMDVM paths when available. |
last_rssi | Last RSSI value for MMDVM paths when available. |
direction | rx or tx from the endpoint perspective. |
| Field | Description |
|---|---|
id | Internal peer row ID. |
peer_key | Stable peer key string. |
kind | mmdvm_master or openbridge. |
radio_id | Trunk radio ID. |
callsign | Trunk callsign or short name. |
display_name | Human-readable trunk name. |
enabled | Whether the trunk is enabled. |
connected | Whether the trunk is considered connected. |
last_seen_at_epoch | Last packet time as Unix epoch seconds. |
rx_packets | Received packet counter. |
tx_packets | Transmitted packet counter. |
software_id | Software ID, if provided. |
package_id | Package ID, if provided. |
description | Description, if provided. |
stale_seconds | Connection stale threshold used by the dashboard. |
activity | Array of short-lived active call rows for that trunk. |
roaming contains the current private-call/SMS roaming view.
Radios missing from this list may be treated as unavailable by private-call
routing.
| Field | Description |
|---|---|
dwellHours | Normal roaming dwell window in hours. |
rows | Array of current roaming radio rows. |
| Field | Description |
|---|---|
radio_id | Radio ID being tracked. |
radio_callsign | Resolved callsign, if known. |
radio_name | Resolved name, if known. |
protocol | Protocol path where the radio was last seen. |
peer_kind | Kind of peer where the radio was last seen. |
peer_radio_id | Peer radio ID. |
peer_callsign | Peer callsign. |
last_seen_at_epoch | Last seen time as Unix epoch seconds. |
location_type | Display type: Repeater, Hotspot, or Trunk. |
location_name | Display name of the last-seen location. |
gps_latitude | Recent GPS latitude if valid within the GPS display window. |
gps_longitude | Recent GPS longitude if valid within the GPS display window. |
gps_speed_knots | GPS speed in knots, if known. |
gps_course_degrees | GPS course in degrees, if known. |
gps_received_at_epoch | GPS receive time as Unix epoch seconds. |
motorola_ars | Flag indicating Motorola ARS registration has been seen. |
motorola_ars_active | Flag indicating Motorola ARS is currently considered active. |
motorola_ars_seen_at_epoch | Most recent ARS time as Unix epoch seconds. |
motorola_bms_seen_at_epoch | Most recent Motorola BMS time as Unix epoch seconds, if known. |
motorola_bms_radio_esn | Decoded Motorola radio ESN, if known. |