Schema Reference 
Exhaustive specification of the test file format.
Global [config] 
| Key | Type | Required | Notes | 
|---|---|---|---|
base_url | string | yes | Base URL for all requests | 
default_headers | map<string,string> | no | Added to every request | 
insecure | bool | no | Accept invalid TLS certs | 
allowed_commands | array<string> | no | Whitelist for command hooks | 
Environment variables can be interpolated in any string via ${{NAME}}.
toml
[config]
base_url = "https://api.example.com"
default_headers = { "Content-Type" = "application/json" }
insecure = false
allowed_commands = ["bash", "sh", "echo", "jq"][[tests]] entries 
| Key | Type | Required | Notes | 
|---|---|---|---|
name | string | yes | Display name | 
method | string | yes | GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS | 
endpoint | string | yes | Appended to base_url; supports {{vars}} | 
query_params | map<string,string> | no | Each value supports {{vars}} and ${{ENV}} | 
headers | map<string,string> | no | Per-test headers | 
body | JSON value | no | Inline JSON; strings support {{vars}} and {{file:path}} | 
body_file | string (relative path) | no | Load body from file; .json parsed as JSON | 
expected_status | number | yes | HTTP status code | 
expected_body | JSON value | no | Exact match; use assertions for flexible checks | 
assertions | array<Assertion> | no | See Assertions Reference | 
store | map<string,string> | no | JSONPath (like $.id) → variable name | 
get_cookie | map<string,string> | no | Cookie name → variable name | 
max_response_time | number (ms) | no | Fails if exceeded | 
before | array<CommandStep> | no | Run before HTTP call | 
after | array<CommandStep> | no | Run after; supports on condition | 
Mutual exclusivity: body and body_file cannot be used together.
CommandStep 
| Key | Type | Required | Notes | 
|---|---|---|---|
run | string | yes | Command binary or script | 
args | array<string> | no | Arguments array | 
shell | bool | no | Run via shell (sh -lc) | 
dir | string | no | Working directory | 
env | map<string,string> | no | Step environment variables | 
timeout_ms | number | no | Default 30000 | 
ignore_error | bool | no | Don’t fail on non-zero exit | 
capture | { var: string } | no | Save stdout→, stderr→_stderr | 
export | map<string,string> | no | JSONPath from stdout → variable | 
when | string | no | Simple ==/!= condition after substitution | 
on | string | no | Only for after: success/failure/always | 
Security: every step is validated against [config].allowed_commands.