OS Manuals

/opt/chainguard/httpie/bin/https

HTTPie for Terminal — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.

From httpie 3.2.4-r18 (os), captured 2026-11-05 by running https --help (exit 0). permalink

usage:
    http [METHOD] URL [REQUEST_ITEM ...]

HTTPie: modern, user-friendly command-line HTTP client for the API era. <https://httpie.io>

Positional arguments:

  These arguments come after any flags and in the order they are listed here.
  Only URL is required.

  METHOD
      The HTTP method to be used for the request (GET, POST, PUT, DELETE, ...).

      This argument can be omitted in which case HTTPie will use POST if there
      is some data to be sent, otherwise GET:

          $ http example.org               # => GET
          $ http example.org hello=world   # => POST

  URL
      The request URL. Scheme defaults to 'http://' if the URL
      does not include one. (You can override this with: --default-scheme=http/https)

      You can also use a shorthand for localhost

          $ http :3000                    # => http://localhost:3000
          $ http :/foo                    # => http://localhost/foo

  REQUEST_ITEM
      Optional key-value pairs to be included in the request. The separator used
      determines the type:

      ':' HTTP headers:

          Referer:https://httpie.io  Cookie:foo=bar  User-Agent:bacon/1.0

      '==' URL parameters to be appended to the request URI:

          search==httpie

      '=' Data fields to be serialized into a JSON object (with --json, -j)
          or form data (with --form, -f):

          name=HTTPie  language=Python  description='CLI HTTP client'

      ':=' Non-string JSON data fields (only with --json, -j):

          awesome:=true  amount:=42  colors:='["red", "green", "blue"]'

      '@' Form file fields (only with --form or --multipart):

          cv@~/Documents/CV.pdf
          cv@'~/Documents/CV.pdf;type=application/pdf'

      '=@' A data field like '=', but takes a file path and embeds its content:

          essay=@Documents/essay.txt

      ':=@' A raw JSON field like ':=', but takes a file path and embeds its content:

          package:=@./package.json

      You can use a backslash to escape a colliding separator in the field name:

          field-name-with\:colon=value


Predefined content types:

  --json, -j
      (default) Data items from the command line are serialized as a JSON object.
      The Content-Type and Accept headers are set to application/json
      (if not specified).

  --form, -f
      Data items from the command line are serialized as form fields.

      The Content-Type is set to application/x-www-form-urlencoded (if not
      specified). The presence of any file fields results in a
      multipart/form-data request.

  --multipart
      Similar to --form, but always sends a multipart/form-data request (i.e., even without files).

  --boundary BOUNDARY
      Specify a custom boundary string for multipart/form-data requests. Only has effect only together with --form.

  --raw RAW
      This option allows you to pass raw request data without extra processing
      (as opposed to the structured request items syntax):

          $ http --raw='data' pie.dev/post

      You can achieve the same by piping the data via stdin:

          $ echo data | http pie.dev/post

      Or have HTTPie load the raw data from a file:

          $ http pie.dev/post @data.txt


Content processing options:

  --compress, -x
      Content compressed (encoded) with Deflate algorithm.
      The Content-Encoding header is set to deflate.

      Compression is skipped if it appears that compression ratio is
      negative. Compression can be forced by repeating the argument.


Output processing:

  --pretty {all,colors,format,none}
      Controls output processing. The value can be "none" to not prettify
      the output (default for redirected output), "all" to apply both colors
      and formatting (default for terminal output), "colors", or "format".

  --style, -s STYLE
      Output coloring style (default is "auto"). It can be one of:

              abap, algol, algol_nu, arduino, auto, autumn, borland, bw,
          coffee, colorful, default, dracula, emacs, friendly,
          friendly_grayscale, fruity, github-dark, gruvbox-dark,
          gruvbox-light, igor, inkpot, lightbulb, lilypond, lovelace,
          manni, material, monokai, murphy, native, night-owl, nord,
          nord-darker, one-dark, paraiso-dark, paraiso-light, pastie,
          perldoc, pie, pie-dark, pie-light, rainbow_dash, rrt, sas,
          solarized, solarized-dark, solarized-light, staroffice,
          stata-dark, stata-light, tango, trac, vim, vs, xcode,
          zenburn

      The "auto" style follows your terminal's ANSI color styles.
      For non-auto styles to work properly, please make sure that the
      $TERM environment variable is set to "xterm-256color" or similar
      (e.g., via `export TERM=xterm-256color' in your ~/.bashrc).

  --unsorted
      Disables all sorting while formatting output. It is a shortcut for:

          --format-options=headers.sort:false,json.sort_keys:false

  --sorted
      Re-enables all sorting options while formatting output. It is a shortcut for:

          --format-options=headers.sort:true,json.sort_keys:true

  --response-charset ENCODING
      Override the response encoding for terminal display purposes, e.g.:

          --response-charset=utf8
          --response-charset=big5

  --response-mime MIME_TYPE
      Override the response mime type for coloring and formatting for the terminal, e.g.:

          --response-mime=application/json
          --response-mime=text/xml

  --format-options FORMAT_OPTIONS
      Controls output formatting. Only relevant when formatting is enabled
      through (explicit or implied) --pretty=all or --pretty=format.
      The following are the default options:

          headers.sort:true
          json.format:true
          json.indent:4
          json.sort_keys:true
          xml.format:true
          xml.indent:2

      You may use this option multiple times, as well as specify multiple
      comma-separated options at the same time. For example, this modifies the
      settings to disable the sorting of JSON keys, and sets the indent size to 2:

          --format-options json.sort_keys:false,json.indent:2

      This is something you will typically put into your config file.


Output options:

  --print, -p WHAT
      String specifying what the output should contain:

          'H' request headers
          'B' request body
          'h' response headers
          'b' response body
          'm' response metadata

      The default behaviour is 'hb' (i.e., the response
      headers and body is printed), if standard output is not redirected.
      If the output is piped to another program or to a file, then only the
      response body is printed by default.

  --headers, -h
      Print only the response headers. Shortcut for --print=h.

  --meta, -m
      Print only the response metadata. Shortcut for --print=m.

  --body, -b
      Print only the response body. Shortcut for --print=b.

  --verbose, -v
      Verbose output. For the level one (with single `-v`/`--verbose`), print
      the whole request as well as the response. Also print any intermediary
      requests/responses (such as redirects). For the second level and higher,
      print these as well as the response metadata.

      Level one is a shortcut for: --all --print=BHbh
      Level two is a shortcut for: --all --print=BHbhm

  --all
      By default, only the final request/response is shown. Use this flag to show
      any intermediary requests/responses as well. Intermediary requests include
      followed redirects (with --follow), the first unauthorized request when
      Digest auth is used (--auth=digest), etc.

  --stream, -S
      Always stream the response body by line, i.e., behave like `tail -f'.

      Without --stream and with --pretty (either set or implied),
      HTTPie fetches the whole response before it outputs the processed data.

      Set this option when you want to continuously display a prettified
      long-lived response, such as one from the Twitter streaming API.

      It is useful also without --pretty: It ensures that the output is flushed
      more often and in smaller chunks.

  --output, -o FILE
      Save output to FILE instead of stdout. If --download is also set, then only
      the response body is saved to FILE. Other parts of the HTTP exchange are
      printed to stderr.

  --download, -d
      Do not print the response body to stdout. Rather, download it and store it
      in a file. The filename is guessed unless specified with --output
      [filename]. This action is similar to the default behaviour of wget.

  --continue, -c
      Resume an interrupted download. Note that the --output option needs to be
      specified as well.

  --quiet, -q
      Do not print to stdout or stderr, except for errors and warnings when provided once.
      Provide twice to suppress warnings as well.
      stdout is still redirected if --output is specified.
      Flag doesn't affect behaviour of download beyond not printing to terminal.


Sessions:

  --session SESSION_NAME_OR_PATH
      Create, or reuse and update a session. Within a session, custom headers,
      auth credential, as well as any cookies sent by the server persist between
      requests.

      Session files are stored in:

          [HTTPIE_CONFIG_DIR]/<HOST>/<SESSION_NAME>.json.

      See the following page to find out your default HTTPIE_CONFIG_DIR:

          https://httpie.io/docs/cli/config-file-directory

  --session-read-only SESSION_NAME_OR_PATH
      Create or read a session without updating it form the request/response
      exchange.


Authentication:

  --auth, -a USER[:PASS] | TOKEN
      For username/password based authentication mechanisms (e.g
      basic auth or digest auth) if only the username is provided
      (-a username), HTTPie will prompt for the password.

  --auth-type, -A {basic,bearer,digest}
      The authentication mechanism to be used. Defaults to "basic".

      "basic": Basic HTTP auth

      "digest": Digest HTTP auth

      "bearer": Bearer HTTP Auth

  --ignore-netrc
      Ignore credentials from .netrc.


Network:

  --offline
      Build the request and print it but don’t actually send it.

  --proxy PROTOCOL:PROXY_URL
      String mapping protocol to the URL of the proxy
      (e.g. http:http://foo.bar:3128). You can specify multiple proxies with
      different protocols. The environment variables $ALL_PROXY, $HTTP_PROXY,
      and $HTTPS_proxy are supported as well.

  --follow, -F
      Follow 30x Location redirects.

  --max-redirects MAX_REDIRECTS
      By default, requests have a limit of 30 redirects (works with --follow).

  --max-headers MAX_HEADERS
      The maximum number of response headers to be read before giving up (default 0, i.e., no limit).

  --timeout SECONDS
      The connection timeout of the request in seconds.
      The default value is 0, i.e., there is no timeout limit.
      This is not a time limit on the entire response download;
      rather, an error is reported if the server has not issued a response for
      timeout seconds (more precisely, if no bytes have been received on
      the underlying socket for timeout seconds).

  --check-status
      By default, HTTPie exits with 0 when no network or other fatal errors
      occur. This flag instructs HTTPie to also check the HTTP status code and
      exit with an error if the status indicates one.

      When the server replies with a 4xx (Client Error) or 5xx (Server Error)
      status code, HTTPie exits with 4 or 5 respectively. If the response is a
      3xx (Redirect) and --follow hasn't been set, then the exit status is 3.
      Also an error message is written to stderr if stdout is redirected.

  --path-as-is
      Bypass dot segment (/../ or /./) URL squashing.

  --chunked
      Enable streaming via chunked transfer encoding. The Transfer-Encoding header is set to chunked.


SSL:

  --verify VERIFY
      Set to "no" (or "false") to skip checking the host's SSL certificate.
      Defaults to "yes" ("true"). You can also pass the path to a CA_BUNDLE file
      for private certs. (Or you can set the REQUESTS_CA_BUNDLE environment
      variable instead.)

  --ssl {ssl2.3,tls1,tls1.1,tls1.2}
      The desired protocol version to use. This will default to
      SSL v2.3 which will negotiate the highest protocol that both
      the server and your installation of OpenSSL support. Available protocols
      may vary depending on OpenSSL installation (only the supported ones
      are shown here).

  --ciphers CIPHERS
      A string in the OpenSSL cipher list format.


      By default, the following ciphers are used on your system:

      TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256

  --cert CERT
      You can specify a local cert to use as client side SSL certificate.
      This file may either contain both private key and certificate or you may
      specify --cert-key separately.

  --cert-key CERT_KEY
      The private key to use with SSL. Only needed if --cert is given and the
      certificate file does not contain the private key.

  --cert-key-pass CERT_KEY_PASS
      The passphrase to be used to with the given private key. Only needed if --cert-key
      is given and the key file requires a passphrase.
      If not provided, you’ll be prompted interactively.


Troubleshooting:

  --ignore-stdin, -I
      Do not attempt to read stdin

  --help
      Show this help message and exit.

  --manual
      Show the full manual.

  --version
      Show version and exit.

  --traceback
      Prints the exception traceback should one occur.

  --default-scheme DEFAULT_SCHEME
      The default scheme to use if not specified in the URL.

  --debug
      Prints the exception traceback should one occur, as well as other
      information useful for debugging HTTPie itself and for reporting bugs.


For every --OPTION there is also a --no-OPTION that reverts OPTION
to its default value.

Suggestions and bug reports are greatly appreciated:
    https://github.com/httpie/cli/issues
Options (50)
OptionDescriptionSource
--json, -j(default) Data items from the command line are serialized as a JSON object.help
--form, -fData items from the command line are serialized as form fields.help
--multipartSimilar to --form, but always sends a multipart/form-data request (i.e., even without files).help
--boundary BOUNDARYSpecify a custom boundary string for multipart/form-data requests.help
--raw RAWThis option allows you to pass raw request data without extra processing (as opposed to the structured request items syntax):help
--compress, -xContent compressed (encoded) with Deflate algorithm.help + man
--pretty allControls output processing.help
--style, -s STYLEOutput coloring style (default is "auto").help
--unsortedDisables all sorting while formatting output.help
--format-options headers.sort:falsehelp
--sortedRe-enables all sorting options while formatting output.help
--response-charset ENCODINGOverride the response encoding for terminal display purposes, e.g.:help
--response-mime MIME_TYPEOverride the response mime type for coloring and formatting for the terminal, e.g.:help
--print, -p WHATString specifying what the output should contain:help + man
--headers, -hPrint only the response headers.help + man
--meta, -mPrint only the response metadata.help + man
--body, -bPrint only the response body.help + man
--verbose, -vVerbose output.help + man
--allBy default, only the final request/response is shown.help + man
--stream, -SAlways stream the response body by line, i.e., behave like `tail -f'.help + man
--output, -o FILESave output to FILE instead of stdout.help + man
--download, -dDo not print the response body to stdout.help + man
--continue, -cResume an interrupted download.help + man
--quiet, -qDo not print to stdout or stderr, except for errors and warnings when provided once.help + man
--session SESSION_NAME_OR_PATHCreate, or reuse and update a session.help
--session-read-only SESSION_NAME_OR_PATHCreate or read a session without updating it form the request/response exchange.help
--auth-type, -A basicThe authentication mechanism to be used.help
--ignore-netrcIgnore credentials from .netrc.help
--offlineBuild the request and print it but don’t actually send it.help
--proxy PROTOCOL:PROXY_URLString mapping protocol to the URL of the proxy (e.g. http:http://foo.bar:3128).help
--follow, -FFollow 30x Location redirects.help
--max-redirects MAX_REDIRECTSBy default, requests have a limit of 30 redirects (works with --follow).help
--max-headers MAX_HEADERSThe maximum number of response headers to be read before giving up (default 0, i.e., no limit).help
--timeout SECONDSThe connection timeout of the request in seconds.help
--check-statusBy default, HTTPie exits with 0 when no network or other fatal errors occur.help
--path-as-isBypass dot segment (/../ or /./) URL squashing.help
--chunkedEnable streaming via chunked transfer encoding.help
--verify VERIFYSet to "no" (or "false") to skip checking the host's SSL certificate.help
--ssl ssl2.3The desired protocol version to use.help
--ciphers CIPHERSA string in the OpenSSL cipher list format.help
--cert CERTYou can specify a local cert to use as client side SSL certificate.help
--cert-key CERT_KEYThe private key to use with SSL.help
--cert-key-pass CERT_KEY_PASSThe passphrase to be used to with the given private key.help
--ignore-stdin, -IDo not attempt to read stdinhelp
--helpShow this help message and exit.help
--manualShow the full manual.help
--versionShow version and exit.help
--tracebackPrints the exception traceback should one occur.help
--default-scheme DEFAULT_SCHEMEThe default scheme to use if not specified in the URL.help
--debugPrints the exception traceback should one occur, as well as other information useful for debugging HTTPie itself and for reporting bugs.help

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.