Skip to content
Start here

DEX

ModelsExpand Collapse
DigitalExperienceMonitor object { id, default, name }
id: string

API Resource UUID tag.

maxLength36
default: boolean

Whether the policy is the default for the account.

name: string
NetworkPath object { slots, sampling }
slots: array of object { id, clientToAppRttMs, clientToCfEgressRttMs, 3 more }
id: string

API Resource UUID tag.

maxLength36
clientToAppRttMs: number

Round trip time in ms of the client to app mile

clientToCfEgressRttMs: number

Round trip time in ms of the client to Cloudflare egress mile

clientToCfIngressRttMs: number

Round trip time in ms of the client to Cloudflare ingress mile

timestamp: string
clientToIspRttMs: optional number

Round trip time in ms of the client to ISP mile

sampling: optional object { unit, value }

Specifies the sampling applied, if any, to the slots response. When sampled, results shown represent the first test run to the start of each sampling interval.

unit: "hours"
value: number
NetworkPathResponse object { id, deviceName, interval, 4 more }
id: string

API Resource UUID tag.

maxLength36
deviceName: optional string

Name of the device that ran the test.

interval: optional string

The interval at which the Traceroute synthetic application test is set to run.

kind: optional "traceroute"
name: optional string
networkPath: optional NetworkPath { slots, sampling }
url: optional string

The host of the Traceroute synthetic application test.

Percentiles object { p50, p90, p95, p99 }
p50: optional number

p50 observed in the time period.

p90: optional number

p90 observed in the time period.

p95: optional number

p95 observed in the time period.

p99: optional number

p99 observed in the time period.

DEXWARP Change Events

List WARP change events.
GET/accounts/{account_id}/dex/warp-change-events
ModelsExpand Collapse
WARPChangeEventGetResponse = array of object { account_name, account_tag, device_id, 7 more } or object { device_id, device_registration, from, 6 more }
One of the following:
DigitalExperienceMonitoringWARPToggleChangeEvent object { account_name, account_tag, device_id, 7 more }
account_name: optional string

The account name.

account_tag: optional string

The public account identifier.

device_id: optional string

The device ID.

maxLength36
Deprecateddevice_registration: optional string

Use registration_id instead.

Deprecated: use registration_id. The device registration ID.

maxLength36
hostname: optional string

The hostname of the machine the event is from.

registration_id: optional string

The device registration ID.

maxLength36
serial_number: optional string

The serial number of the machine the event is from.

timestamp: optional string

The event time.

formatdate-time
toggle: optional "on" or "off"

The state of the WARP toggle.

One of the following:
"on"
"off"
user_email: optional string

Email tied to the device.

DigitalExperienceMonitoringWARPConfigChangeEvent object { device_id, device_registration, from, 6 more }
device_id: optional string

The device ID.

maxLength36
Deprecateddevice_registration: optional string

Use registration_id instead.

Deprecated: use registration_id. The device registration ID.

maxLength36
from: optional object { account_name, account_tag, config_name }

The details for the WARP configuration that was switched from.

account_name: optional string

The account name.

account_tag: optional string

The public account identifier.

maxLength36
config_name: optional string

The name of the WARP configuration.

hostname: optional string

The hostname of the machine the event is from.

registration_id: optional string

The device registration ID.

maxLength36
serial_number: optional string

The serial number of the machine the event is from.

timestamp: optional string

The event time.

formatdate-time
to: optional object { account_name, account_tag, config_name }

The details for the WARP configuration that was switched to.

account_name: optional string

The account name.

account_tag: optional string

The public account identifier.

maxLength36
config_name: optional string

The name of the WARP configuration.

user_email: optional string

Email tied to the device.

DEXCommands

List account commands
GET/accounts/{account_id}/dex/commands
Create account commands
POST/accounts/{account_id}/dex/commands
ModelsExpand Collapse
CommandListResponse object { commands }
commands: optional array of object { id, completed_date, created_date, 6 more }
id: optional string
completed_date: optional string
formatdate-time
created_date: optional string
formatdate-time
device_id: optional string
filename: optional string
registration_id: optional string

Unique identifier for the device registration

status: optional string
type: optional string
user_email: optional string
CommandCreateResponse object { commands }
commands: optional array of object { id, args, device_id, 3 more }

List of created commands

id: optional string

Unique identifier for the command

args: optional map[string]

Command arguments

device_id: optional string

Identifier for the device associated with the command

registration_id: optional string

Unique identifier for the device registration

status: optional "PENDING_EXEC" or "PENDING_UPLOAD" or "SUCCESS" or "FAILED"

Current status of the command

One of the following:
"PENDING_EXEC"
"PENDING_UPLOAD"
"SUCCESS"
"FAILED"
type: optional string

Type of the command (e.g., “pcap”, “speed-test”, or “warp-diag”)

DEXCommandsDevices

List devices eligible for remote captures
GET/accounts/{account_id}/dex/commands/devices
ModelsExpand Collapse
DeviceListResponse object { devices }
devices: optional array of object { deviceId, deviceName, eligible, 7 more }

List of eligible devices

deviceId: optional string

Device identifier (UUID v4)

deviceName: optional string

Device identifier (human readable)

eligible: optional boolean

Whether the device is eligible for remote captures

ineligibleReason: optional string

If the device is not eligible, the reason why.

personEmail: optional string

User contact email address

platform: optional string

Operating system.

registrationId: optional string

Device registration identifier (UUID v4). On multi-user devices, this uniquely identifies a user’s registration on the device.

status: optional string

Network status.

timestamp: optional string
version: optional string

WARP client version.

DEXCommandsDownloads

Download command output file
GET/accounts/{account_id}/dex/commands/{command_id}/downloads/{filename}

DEXCommandsQuota

Returns account commands usage, quota, and reset time
GET/accounts/{account_id}/dex/commands/quota
ModelsExpand Collapse
QuotaGetResponse object { quota, quota_usage, reset_time }
quota: number

The total number of commands that can be initiated for an account.

quota_usage: number

The number of commands that have been initiated for an account.

reset_time: string

The time when the quota resets.

formatdate-time

DEXColos

List Cloudflare colos
GET/accounts/{account_id}/dex/colos
ModelsExpand Collapse
ColoListResponse object { airportCode, city, countryCode }
airportCode: string

Airport code

city: string

City

countryCode: string

Country code

DEXFleet Status

List fleet status details by dimension
GET/accounts/{account_id}/dex/fleet-status/live
List fleet status aggregate details by dimension
GET/accounts/{account_id}/dex/fleet-status/over-time
ModelsExpand Collapse
LiveStat object { uniqueDevicesTotal, value }
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
FleetStatusLiveResponse object { deviceStats }
deviceStats: optional object { byColo, byMode, byPlatform, 3 more }
byColo: optional array of LiveStat { uniqueDevicesTotal, value }
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
byMode: optional array of LiveStat { uniqueDevicesTotal, value }
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
byPlatform: optional array of LiveStat { uniqueDevicesTotal, value }
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
byStatus: optional array of LiveStat { uniqueDevicesTotal, value }
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
byVersion: optional array of LiveStat { uniqueDevicesTotal, value }
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
uniqueDevicesTotal: optional number

Number of unique devices

FleetStatusOverTimeResponse object { deviceStats }
deviceStats: optional object { byMode, byStatus, uniqueDevicesTotal }
byMode: optional array of object { timestamp, uniqueDevicesTotal, value }
timestamp: optional string
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
byStatus: optional array of object { timestamp, uniqueDevicesTotal, value }
timestamp: optional string
uniqueDevicesTotal: optional number

Number of unique devices

value: optional string
uniqueDevicesTotal: optional number

Number of unique devices

DEXFleet StatusDevices

List fleet status devices
GET/accounts/{account_id}/dex/fleet-status/devices
ModelsExpand Collapse
DeviceListResponse object { colo, deviceId, mode, 40 more }
colo: string

Cloudflare colo airport code.

deviceId: string

Device identifier (UUID v4)

mode: string

The mode under which the WARP client is run.

platform: string

Operating system.

status: string

Network status.

timestamp: string
version: string

WARP client version.

alwaysOn: optional boolean
batteryCharging: optional boolean
batteryCycles: optional number
formatint64
batteryPct: optional number
formatfloat
connectionType: optional string
cpuPct: optional number
formatfloat
cpuPctByApp: optional array of object { cpu_pct, name }
cpu_pct: optional number

CPU usage percentage, on a scale of 0 to 100.

formatfloat
maximum100
minimum0
name: optional string

Application name.

deviceIpv4: optional object { address, asn, aso, 4 more }
address: optional string
asn: optional number
aso: optional string
location: optional object { city, country_iso, state_iso, zip }
city: optional string
country_iso: optional string
state_iso: optional string
zip: optional string
name: optional string
netmask: optional string
version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).

deviceIpv6: optional object { address, asn, aso, 4 more }
address: optional string
asn: optional number
aso: optional string
location: optional object { city, country_iso, state_iso, zip }
city: optional string
country_iso: optional string
state_iso: optional string
zip: optional string
name: optional string
netmask: optional string
version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).

deviceName: optional string

Device identifier (human readable).

DeprecateddeviceRegistration: optional string

Use registrationId instead.

Deprecated: use registrationId. Device registration identifier (UUID).

diskReadBps: optional number
formatint64
diskUsagePct: optional number
formatfloat
diskWriteBps: optional number
formatint64
dohSubdomain: optional string
estimatedLossPct: optional number
formatfloat
firewallEnabled: optional boolean
gatewayIpv4: optional object { address, asn, aso, 4 more }
address: optional string
asn: optional number
aso: optional string
location: optional object { city, country_iso, state_iso, zip }
city: optional string
country_iso: optional string
state_iso: optional string
zip: optional string
name: optional string
netmask: optional string
version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).

gatewayIpv6: optional object { address, asn, aso, 4 more }
address: optional string
asn: optional number
aso: optional string
location: optional object { city, country_iso, state_iso, zip }
city: optional string
country_iso: optional string
state_iso: optional string
zip: optional string
name: optional string
netmask: optional string
version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).

handshakeLatencyMs: optional number
formatint64
ispIpv4: optional object { address, asn, aso, 4 more }
address: optional string
asn: optional number
aso: optional string
location: optional object { city, country_iso, state_iso, zip }
city: optional string
country_iso: optional string
state_iso: optional string
zip: optional string
name: optional string
netmask: optional string
version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).

ispIpv6: optional object { address, asn, aso, 4 more }
address: optional string
asn: optional number
aso: optional string
location: optional object { city, country_iso, state_iso, zip }
city: optional string
country_iso: optional string
state_iso: optional string
zip: optional string
name: optional string
netmask: optional string
version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).

metal: optional string
networkRcvdBps: optional number
formatint64
networkSentBps: optional number
formatint64
networkSsid: optional string
personEmail: optional string

User contact email address

ramAvailableKb: optional number
formatint64
ramUsedPct: optional number
formatfloat
ramUsedPctByApp: optional array of object { name, ram_used_pct }
name: optional string

Application name.

ram_used_pct: optional number

RAM usage percentage, on a scale of 0 to 100.

formatfloat
maximum100
minimum0
registrationId: optional string

Device registration identifier (UUID v4). On multi-user devices, this uniquely identifies a user’s registration on the device.

rtt: optional object { minRttUs, rttUs, rttVarUs }

Round-trip time statistics for the WARP tunnel.

minRttUs: optional object { downstream, upstream }

Minimum round-trip time in microseconds.

downstream: optional number
upstream: optional number
rttUs: optional object { downstream, upstream }

Round-trip time in microseconds.

downstream: optional number
upstream: optional number
rttVarUs: optional object { downstream, upstream }

Round-trip time variance in microseconds.

downstream: optional number
upstream: optional number
switchLocked: optional boolean
tunnelStats: optional object { bytesLost, bytesReceived, bytesRetransmitted, 6 more }

WARP tunnel packet and byte counters.

bytesLost: optional object { downstream, upstream }

Number of bytes lost, split by direction.

downstream: optional number
upstream: optional number
bytesReceived: optional object { downstream, upstream }

Number of bytes received, split by direction.

downstream: optional number
upstream: optional number
bytesRetransmitted: optional object { downstream, upstream }

Number of bytes retransmitted, split by direction.

downstream: optional number
upstream: optional number
bytesSent: optional object { downstream, upstream }

Number of bytes sent, split by direction.

downstream: optional number
upstream: optional number
packetsLost: optional object { downstream, upstream }

Number of packets lost, split by direction.

downstream: optional number
upstream: optional number
packetsReceived: optional object { downstream, upstream }

Number of packets received, split by direction.

downstream: optional number
upstream: optional number
packetsRetransmitted: optional object { downstream, upstream }

Number of packets retransmitted, split by direction.

downstream: optional number
upstream: optional number
packetsSent: optional object { downstream, upstream }

Number of packets sent, split by direction.

downstream: optional number
upstream: optional number
statsWindowMs: optional number

The measurement window duration in milliseconds.

tunnelType: optional string
wifiStrengthDbm: optional number
formatint64

DEXHTTP Tests

Get details and aggregate metrics for an http test
GET/accounts/{account_id}/dex/http-tests/{test_id}
ModelsExpand Collapse
HTTPDetails object { host, httpStats, httpStatsByColo, 6 more }
host: optional string

The url of the HTTP synthetic application test.

httpStats: optional object { availabilityPct, dnsResponseTimeMs, httpStatusCode, 3 more }
availabilityPct: object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
formatfloat
avg: optional number

average observed in the time period.

formatfloat
max: optional number

highest observed in the time period.

formatfloat
min: optional number

lowest observed in the time period.

formatfloat
dnsResponseTimeMs: TestStatOverTime { slots, avg, max, min }
httpStatusCode: array of object { status200, status300, status400, 2 more }
status200: number
status300: number
status400: number
status500: number
timestamp: string
resourceFetchTimeMs: TestStatOverTime { slots, avg, max, min }
serverResponseTimeMs: TestStatOverTime { slots, avg, max, min }
uniqueDevicesTotal: number

Count of unique devices that have run this test in the given time period.

httpStatsByColo: optional array of object { availabilityPct, colo, dnsResponseTimeMs, 4 more }
availabilityPct: object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
formatfloat
avg: optional number

average observed in the time period.

formatfloat
max: optional number

highest observed in the time period.

formatfloat
min: optional number

lowest observed in the time period.

formatfloat
colo: string
dnsResponseTimeMs: TestStatOverTime { slots, avg, max, min }
httpStatusCode: array of object { status200, status300, status400, 2 more }
status200: number
status300: number
status400: number
status500: number
timestamp: string
resourceFetchTimeMs: TestStatOverTime { slots, avg, max, min }
serverResponseTimeMs: TestStatOverTime { slots, avg, max, min }
uniqueDevicesTotal: number

Count of unique devices that have run this test in the given time period.

interval: optional string

The interval at which the HTTP synthetic application test is set to run.

kind: optional "http"
method: optional string

The HTTP method to use when running the test.

name: optional string

The name of the HTTP synthetic application test.

target_policies: optional array of DigitalExperienceMonitor { id, default, name }
id: string

API Resource UUID tag.

maxLength36
default: boolean

Whether the policy is the default for the account.

name: string
targeted: optional boolean

DEXHTTP TestsPercentiles

Get percentiles for an http test
GET/accounts/{account_id}/dex/http-tests/{test_id}/percentiles
ModelsExpand Collapse
HTTPDetailsPercentiles object { dnsResponseTimeMs, resourceFetchTimeMs, serverResponseTimeMs }
dnsResponseTimeMs: optional Percentiles { p50, p90, p95, p99 }
resourceFetchTimeMs: optional Percentiles { p50, p90, p95, p99 }
serverResponseTimeMs: optional Percentiles { p50, p90, p95, p99 }
TestStatOverTime object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
avg: optional number

average observed in the time period.

max: optional number

highest observed in the time period.

min: optional number

lowest observed in the time period.

DEXTests

List DEX test analytics
GET/accounts/{account_id}/dex/tests/overview
ModelsExpand Collapse
AggregateTimePeriod object { units, value }
units: "hours" or "days" or "testRuns"
One of the following:
"hours"
"days"
"testRuns"
value: number
Tests object { overviewMetrics, tests }
overviewMetrics: object { testsTotal, avgHttpAvailabilityPct, avgTracerouteAvailabilityPct }
testsTotal: number

number of tests.

avgHttpAvailabilityPct: optional number

percentage availability for all HTTP test results in response.

formatfloat
avgTracerouteAvailabilityPct: optional number

percentage availability for all traceroutes results in response.

formatfloat
tests: array of object { id, created, description, 13 more }

array of test results objects.

id: string

API Resource UUID tag.

maxLength36
created: string

date the test was created.

description: string

the test description defined during configuration

enabled: boolean

if true, then the test will run on targeted devices. Else, the test will not run.

host: string
interval: string

The interval at which the synthetic application test is set to run.

kind: "http" or "traceroute"

test type, http or traceroute

One of the following:
"http"
"traceroute"
name: string

name given to this test

updated: string
httpResults: optional object { resourceFetchTime }
resourceFetchTime: object { history, avgMs, overTime }
history: array of object { timePeriod, avgMs, deltaPct }
timePeriod: AggregateTimePeriod { units, value }
avgMs: optional number
deltaPct: optional number
formatfloat
avgMs: optional number
overTime: optional object { timePeriod, values }
timePeriod: AggregateTimePeriod { units, value }
values: array of object { avgMs, timestamp }
avgMs: number
timestamp: string
httpResultsByColo: optional array of object { colo, resourceFetchTime }
colo: string

Cloudflare colo

resourceFetchTime: object { history, avgMs, overTime }
history: array of object { timePeriod, avgMs, deltaPct }
timePeriod: AggregateTimePeriod { units, value }
avgMs: optional number
deltaPct: optional number
formatfloat
avgMs: optional number
overTime: optional object { timePeriod, values }
timePeriod: AggregateTimePeriod { units, value }
values: array of object { avgMs, timestamp }
avgMs: number
timestamp: string
method: optional string

for HTTP, the method to use when running the test

target_policies: optional array of DigitalExperienceMonitor { id, default, name }
id: string

API Resource UUID tag.

maxLength36
default: boolean

Whether the policy is the default for the account.

name: string
targeted: optional boolean
tracerouteResults: optional object { roundTripTime }
roundTripTime: object { history, avgMs, overTime }
history: array of object { timePeriod, avgMs, deltaPct }
timePeriod: AggregateTimePeriod { units, value }
avgMs: optional number
deltaPct: optional number
formatfloat
avgMs: optional number
overTime: optional object { timePeriod, values }
timePeriod: AggregateTimePeriod { units, value }
values: array of object { avgMs, timestamp }
avgMs: number
timestamp: string
tracerouteResultsByColo: optional array of object { colo, roundTripTime }
colo: string

Cloudflare colo

roundTripTime: object { history, avgMs, overTime }
history: array of object { timePeriod, avgMs, deltaPct }
timePeriod: AggregateTimePeriod { units, value }
avgMs: optional number
deltaPct: optional number
formatfloat
avgMs: optional number
overTime: optional object { timePeriod, values }
timePeriod: AggregateTimePeriod { units, value }
values: array of object { avgMs, timestamp }
avgMs: number
timestamp: string

DEXTestsUnique Devices

Get count of devices targeted
GET/accounts/{account_id}/dex/tests/unique-devices
ModelsExpand Collapse
UniqueDevices object { uniqueDevicesTotal }
uniqueDevicesTotal: number

total number of unique devices

DEXTraceroute Test Results

DEXTraceroute Test ResultsNetwork Path

Get details for a specific traceroute test run
GET/accounts/{account_id}/dex/traceroute-test-results/{test_result_id}/network-path
ModelsExpand Collapse
NetworkPathGetResponse object { hops, resultId, colo, 6 more }
hops: array of object { ttl, asn, aso, 6 more }

An array of the hops taken by the device to reach the end destination.

ttl: number
asn: optional number
aso: optional string
ipAddress: optional string
location: optional object { city, state, zip }
city: optional string
state: optional string
zip: optional string
mile: optional "client-to-app" or "client-to-cf-egress" or "client-to-cf-ingress" or "client-to-isp"
One of the following:
"client-to-app"
"client-to-cf-egress"
"client-to-cf-ingress"
"client-to-isp"
name: optional string
packetLossPct: optional number
formatfloat
rttMs: optional number
resultId: string

API Resource UUID tag.

maxLength36
colo: optional string

Cloudflare colo airport code.

deviceName: optional string

Name of the device associated with this network path response.

execution_context: optional "EXECUTION_CONTEXT_INVALID" or "OUT_OF_TUNNEL" or "IN_TUNNEL"

Whether the test was run inside or outside of the WARP tunnel.

One of the following:
"EXECUTION_CONTEXT_INVALID"
"OUT_OF_TUNNEL"
"IN_TUNNEL"
testId: optional string

API Resource UUID tag.

maxLength36
testName: optional string

Name of the traceroute test.

time_start: optional string

Timestamp indicating when the traceroute test execution began.

tunnel_type: optional string

DEXTraceroute Tests

Get details and aggregate metrics for a traceroute test
GET/accounts/{account_id}/dex/traceroute-tests/{test_id}
Get percentiles for a traceroute test
GET/accounts/{account_id}/dex/traceroute-tests/{test_id}/percentiles
Get network path breakdown for a traceroute test
GET/accounts/{account_id}/dex/traceroute-tests/{test_id}/network-path
ModelsExpand Collapse
Traceroute object { host, interval, kind, 5 more }
host: string

The host of the Traceroute synthetic application test.

interval: string

The interval at which the Traceroute synthetic application test is set to run.

kind: "traceroute"
name: string

The name of the Traceroute synthetic application test.

target_policies: optional array of DigitalExperienceMonitor { id, default, name }
id: string

API Resource UUID tag.

maxLength36
default: boolean

Whether the policy is the default for the account.

name: string
targeted: optional boolean
tracerouteStats: optional object { availabilityPct, hopsCount, packetLossPct, 2 more }
availabilityPct: object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
formatfloat
avg: optional number

average observed in the time period.

formatfloat
max: optional number

highest observed in the time period.

formatfloat
min: optional number

lowest observed in the time period.

formatfloat
hopsCount: TestStatOverTime { slots, avg, max, min }
packetLossPct: object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
formatfloat
avg: optional number

average observed in the time period.

formatfloat
max: optional number

highest observed in the time period.

formatfloat
min: optional number

lowest observed in the time period.

formatfloat
roundTripTimeMs: TestStatOverTime { slots, avg, max, min }
uniqueDevicesTotal: number

Count of unique devices that have run this test in the given time period.

tracerouteStatsByColo: optional array of object { availabilityPct, colo, hopsCount, 3 more }
availabilityPct: object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
formatfloat
avg: optional number

average observed in the time period.

formatfloat
max: optional number

highest observed in the time period.

formatfloat
min: optional number

lowest observed in the time period.

formatfloat
colo: string
hopsCount: TestStatOverTime { slots, avg, max, min }
packetLossPct: object { slots, avg, max, min }
slots: array of object { timestamp, value }
timestamp: string
value: number
formatfloat
avg: optional number

average observed in the time period.

formatfloat
max: optional number

highest observed in the time period.

formatfloat
min: optional number

lowest observed in the time period.

formatfloat
roundTripTimeMs: TestStatOverTime { slots, avg, max, min }
uniqueDevicesTotal: number

Count of unique devices that have run this test in the given time period.

TracerouteTestPercentilesResponse object { hopsCount, packetLossPct, roundTripTimeMs }
hopsCount: optional Percentiles { p50, p90, p95, p99 }
packetLossPct: optional Percentiles { p50, p90, p95, p99 }
roundTripTimeMs: optional Percentiles { p50, p90, p95, p99 }

DEXRules

Get DEX Rule
GET/accounts/{account_id}/dex/rules/{rule_id}
Delete a DEX Rule
DELETE/accounts/{account_id}/dex/rules/{rule_id}
Update a DEX Rule
PATCH/accounts/{account_id}/dex/rules/{rule_id}
Create a DEX Rule
POST/accounts/{account_id}/dex/rules
List DEX Rules
GET/accounts/{account_id}/dex/rules
ModelsExpand Collapse
RuleGetResponse object { id, created_at, match, 4 more }
id: string

API Resource UUID tag.

maxLength36
created_at: string
match: string
name: string
description: optional string
targeted_tests: optional array of object { data, enabled, name, test_id }
data: object { host, kind, method }

The configuration object which contains the details for the WARP client to conduct the test.

host: string

The desired endpoint to test.

kind: "http" or "traceroute"

The type of test.

One of the following:
"http"
"traceroute"
method: optional "GET"

The HTTP request method type.

enabled: boolean
name: string
test_id: string
updated_at: optional string
RuleDeleteResponse = boolean
RuleUpdateResponse object { id, created_at, match, 4 more }
id: string

API Resource UUID tag.

maxLength36
created_at: string
match: string
name: string
description: optional string
targeted_tests: optional array of object { data, enabled, name, test_id }
data: object { host, kind, method }

The configuration object which contains the details for the WARP client to conduct the test.

host: string

The desired endpoint to test.

kind: "http" or "traceroute"

The type of test.

One of the following:
"http"
"traceroute"
method: optional "GET"

The HTTP request method type.

enabled: boolean
name: string
test_id: string
updated_at: optional string
RuleCreateResponse object { id, created_at, match, 4 more }
id: string

API Resource UUID tag.

maxLength36
created_at: string
match: string
name: string
description: optional string
targeted_tests: optional array of object { data, enabled, name, test_id }
data: object { host, kind, method }

The configuration object which contains the details for the WARP client to conduct the test.

host: string

The desired endpoint to test.

kind: "http" or "traceroute"

The type of test.

One of the following:
"http"
"traceroute"
method: optional "GET"

The HTTP request method type.

enabled: boolean
name: string
test_id: string
updated_at: optional string
RuleListResponse object { rules }
rules: optional array of object { id, created_at, match, 4 more }
id: string

API Resource UUID tag.

maxLength36
created_at: string
match: string
name: string
description: optional string
targeted_tests: optional array of object { data, enabled, name, test_id }
data: object { host, kind, method }

The configuration object which contains the details for the WARP client to conduct the test.

host: string

The desired endpoint to test.

kind: "http" or "traceroute"

The type of test.

One of the following:
"http"
"traceroute"
method: optional "GET"

The HTTP request method type.

enabled: boolean
name: string
test_id: string
updated_at: optional string

DEXDevices

DEXDevicesISPs

List device ISPs
GET/accounts/{account_id}/dex/devices/{device_id}/isps
ModelsExpand Collapse
ISPs object { isps }
isps: array of object { test_id, test_result_id, time_start, ip }
test_id: string

The test that generated this result.

test_result_id: string

The specific test result.

time_start: string

Timestamp of when the ISP was observed.

formatdate-time
ip: optional object { address, asn, aso, 4 more }

IP address information for the ISP hop. Fields marked as PII-gated (name, address, netmask, and all location sub-fields) will be returned as the literal string "REDACTED" for callers that do not have the PII permission. asn, aso, and version are always returned regardless of PII access.

address: optional string

IP address. Returned as "REDACTED" without PII permission.

asn: optional number

Autonomous System Number.

aso: optional string

Autonomous System Organization name.

location: optional object { city, country_iso, state_iso, zip }

Geographic location information. All fields are returned as the literal string "REDACTED" for callers that do not have the PII permission.

city: optional string

City name. Returned as "REDACTED" without PII permission.

country_iso: optional string

Country ISO code. Returned as "REDACTED" without PII permission.

state_iso: optional string

State/province ISO code. Returned as "REDACTED" without PII permission.

zip: optional string

ZIP/postal code. Returned as "REDACTED" without PII permission.

name: optional string

Named IP address (reverse DNS hostname when available). Returned as "REDACTED" without PII permission.

netmask: optional string

Network mask. Returned as "REDACTED" without PII permission.

version: optional number

IP version (1 for IPv4, 2 for IPv6, 0 if unknown).