header() :: {String.t(), String.t()}
opts() :: map()
url() :: String.t()
headers(opts()) :: [header()] | []
opts(opts()) :: keyword() | []