{
  "product": "Specification (reference)",
  "title": "HTTP Client CLI",
  "summary": "Make HTTP requests from the terminal and read the answer without effort.",
  "category": "cli",
  "entries": [
    {
      "path": [
        "AI",
        "Request",
        "All standard methods"
      ],
      "value": "GET/POST/PUT/PATCH/DELETE/HEAD",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Request",
        "Custom headers"
      ],
      "value": "-H \"Key: value\"",
      "status": "yes",
      "note": "repeatable"
    },
    {
      "path": [
        "AI",
        "Request",
        "Query parameters as arguments"
      ],
      "value": "key==value",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Request",
        "JSON body from arguments or a file"
      ],
      "value": "key=value / @file.json",
      "status": "yes",
      "note": "sets content-type"
    },
    {
      "path": [
        "AI",
        "Request",
        "Form and multipart bodies with file upload"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Request",
        "Read the body from stdin"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Connection",
        "Follow redirects on request"
      ],
      "value": "",
      "status": "yes",
      "note": "bounded, shows the chain"
    },
    {
      "path": [
        "AI",
        "Connection",
        "Timeouts and retries"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Connection",
        "Proxy support and TLS verification toggle"
      ],
      "value": "",
      "status": "yes",
      "note": "insecure mode is explicit"
    },
    {
      "path": [
        "AI",
        "Auth",
        "Basic, bearer and header-based auth"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Auth",
        "Credentials never appear in verbose output by default"
      ],
      "value": "",
      "status": "yes",
      "note": "redacted"
    },
    {
      "path": [
        "AI",
        "Response",
        "Pretty-print and colourise JSON"
      ],
      "value": "",
      "status": "yes",
      "note": "plain when piped"
    },
    {
      "path": [
        "AI",
        "Response",
        "Show status, headers and timing"
      ],
      "value": "",
      "status": "yes",
      "note": "body-only by default"
    },
    {
      "path": [
        "AI",
        "Response",
        "Download to a file with progress"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Response",
        "Exit code reflects the HTTP status class"
      ],
      "value": "",
      "status": "yes",
      "note": "opt-in --fail"
    },
    {
      "path": [
        "AI",
        "Sessions",
        "Persist cookies and defaults per host"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Sessions",
        "Export the request as curl"
      ],
      "value": "",
      "status": "yes",
      "note": "for sharing"
    }
  ]
}
