burl supports multiple output formats for different use cases.
The default human-readable format with colors:
burl https://api.example.com
════════════════════════════════════════════════════════════
burl - HTTP Benchmark Results
════════════════════════════════════════════════════════════
Target
URL: https://api.example.com
Method: GET
Connections: 10
Duration: 10.02s
Summary
Total Requests: 1,234
Successful: 1,234
Requests/sec: 123.15
Throughput: 45.23 KB/s
Latency
P50: 12.4ms
P90: 32.1ms
P95: 45.2ms
P99: 89.3ms
burl https://api.example.com --no-color
burl https://api.example.com --no-tui
burl https://api.example.com --quiet
Use -f json or --format json for machine-readable JSON:
burl https://api.example.com -f json
{
"config": {
"url": "https://api.example.com",
"method": "GET",
"connections": 10,
"duration_ms": 10000
},
"summary": {
"total_requests": 1234,
"successful_requests": 1234,
"failed_requests": 0,
"requests_per_second": 123.15,
"bytes_per_second": 46315
},
"latency_ms": {
"min": 5.2,
"max": 156.8,
"mean": 25.4,
"p50": 12.4,
"p90": 32.1,
"p95": 45.2,
"p99": 89.3
},
"status_codes": {
"200": 1234
}
}
Use -f csv for spreadsheet-compatible output:
burl https://api.example.com -f csv
metric,value
total_requests,1234
successful_requests,1234
failed_requests,0
requests_per_second,123.15
bytes_per_second,46315
latency_min_ms,5.2
latency_max_ms,156.8
latency_mean_ms,25.4
latency_p50_ms,12.4
latency_p90_ms,32.1
latency_p95_ms,45.2
latency_p99_ms,89.3
Use -f markdown for documentation-ready output:
burl https://api.example.com -f markdown
# Benchmark Results
## Configuration
| Setting | Value |
|---------|-------|
| URL | https://api.example.com |
| Method | GET |
| Connections | 10 |
| Duration | 10.02s |
## Summary
| Metric | Value |
|--------|-------|
| Total Requests | 1,234 |
| Successful | 1,234 |
| Requests/sec | 123.15 |
| Throughput | 45.23 KB/s |
## Latency
| Percentile | Value |
|------------|-------|
| P50 | 12.4ms |
| P90 | 32.1ms |
| P95 | 45.2ms |
| P99 | 89.3ms |
Use -o or --output to write results to a file:
# JSON to file
burl https://api.example.com -f json -o results.json
# CSV to file
burl https://api.example.com -f csv -o results.csv
# Markdown to file
burl https://api.example.com -f markdown -o results.md
You can still see terminal output while writing to a file:
# Show TUI and save JSON
burl https://api.example.com -o results.json
The terminal shows the interactive TUI while results are saved as JSON.
| Format | Use Case |
|---|---|
| Text | Human viewing, quick checks |
| JSON | Programmatic processing, APIs |
| CSV | Spreadsheets, data analysis |
| Markdown | Documentation, reports |
| LLM | AI analysis (see LLM Integration) |
Formats can be piped to other tools:
# Pretty-print JSON
burl https://api.example.com -f json | jq .
# Extract specific value
burl https://api.example.com -f json | jq '.latency_ms.p99'
# Compare with threshold
p99=$(burl https://api.example.com -f json | jq '.latency_ms.p99')
if (( $(echo "$p99 > 100" | bc -l) )); then
echo "P99 latency exceeded 100ms!"
exit 1
fi