Run iPerf Test
Runs a test with configurable server, protocol, direction, and timing. Typical default duration in shortcuts flow is 5 seconds.
Developer docs
Automate throughput checks, endpoint validation, and result collection with built-in actions and callback endpoints.
iPerf3 Client & Server exposes two automation layers:
Use iperf3cs://x-callback-url/... for callback-based automation.
Current Apple platform requirements are iOS/iPadOS 16.6+, macOS 13.5+, and visionOS 1.0+.
These actions are available directly in the Apple Shortcuts app:
Runs a test with configurable server, protocol, direction, and timing. Typical default duration in shortcuts flow is 5 seconds.
Returns the latest completed result from local history.
Checks endpoint availability before a full run.
Returns configured servers for menu-driven automation.
Starts a new test and optionally returns via callback URLs.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
String | Yes | Hostname or IP of the iPerf3 endpoint. |
protocol |
String | No | tcp (default) or udp. |
direction |
String | No | download, upload, or bidirectional. |
durationSec |
Integer | No | Duration in seconds. Common default in automation is 5. |
streams |
Integer | No | Parallel stream count. |
x-success |
String | No | Callback URL for success result payload. |
x-error |
String | No | Callback URL for error payload. |
Returns the latest local result, useful for periodic logging workflows.
| Parameter | Type | Required | Description |
|---|---|---|---|
x-success |
String | No | Callback URL for successful payload. |
x-error |
String | No | Callback URL for errors. |
Checks endpoint reachability and returns status/latency metadata.
| Parameter | Type | Required | Description |
|---|---|---|---|
server |
String | Yes | Hostname or IP to test. |
port |
Integer | No | Port value (default 5201). |
iperf3cs://x-callback-url/run-test?server=iperf.example.com&protocol=tcp&direction=download&durationSec=8&x-success=shortcuts://run-shortcut?name=StoreResult
iperf3cs://x-callback-url/get-last-result?x-success=shortcuts://run-shortcut?name=PushSummary
open "iperf3cs://x-callback-url/run-test?server=10.0.1.5&protocol=udp&direction=bidirectional&durationSec=5"
{
"testId": "A8B3D9",
"timestamp": "2026-02-26T09:42:10Z",
"server": "iperf.example.com",
"protocol": "tcp",
"downloadMbps": 942.7,
"uploadMbps": 876.4,
"status": "completed"
}
When an action fails and x-error is present, the callback receives an error object.
| Code | Description |
|---|---|
| ERR_CONNECTION_FAILED | Unable to connect to endpoint. |
| ERR_TIMEOUT | Connection or test exceeded timeout. |
| ERR_INVALID_SERVER | Malformed host or unreachable address. |
| ERR_NO_RESULTS | No saved results for the requested action. |
| ERR_INVALID_PARAMS | Missing or invalid required parameters. |
{
"errorCode": "ERR_CONNECTION_FAILED",
"errorMessage": "Could not reach iperf.example.com:5201"
}
Ensure callback URLs are URL-encoded and the scheme is allowed on your device. Avoid spaces or unescaped symbols in query values.
For reliable execution, keep the app active during test runtime. Use Shortcuts scheduling to trigger runs at specific times.
Use test-server first, then run a throughput test only if the endpoint check succeeds.