{"id":13641990,"url":"https://github.com/aidan-/httpie-aws-authv4","last_synced_at":"2026-02-08T20:47:56.981Z","repository":{"id":16948145,"uuid":"80910843","full_name":"aidan-/httpie-aws-authv4","owner":"aidan-","description":"AWS Auth v4 (API Gateway, Elasticsearch, etc) plugin for HTTPie","archived":false,"fork":false,"pushed_at":"2022-04-15T00:44:33.000Z","size":32,"stargazers_count":46,"open_issues_count":5,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-14T00:04:50.368Z","etag":null,"topics":["apigateway","auth-v4","aws","elasticsearch","httpie"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aidan-.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-04T10:01:42.000Z","updated_at":"2025-03-07T03:09:19.000Z","dependencies_parsed_at":"2022-07-26T01:30:05.534Z","dependency_job_id":null,"html_url":"https://github.com/aidan-/httpie-aws-authv4","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidan-%2Fhttpie-aws-authv4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidan-%2Fhttpie-aws-authv4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidan-%2Fhttpie-aws-authv4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aidan-%2Fhttpie-aws-authv4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aidan-","download_url":"https://codeload.github.com/aidan-/httpie-aws-authv4/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249022943,"owners_count":21199951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apigateway","auth-v4","aws","elasticsearch","httpie"],"created_at":"2024-08-02T01:01:26.267Z","updated_at":"2026-02-08T20:47:56.970Z","avatar_url":"https://github.com/aidan-.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# httpie-aws-authv4\nAWS / Amazon Signature v4 Signing Process authentication plugin for [HTTPie](https://httpie.org/).\n\n## Installation\n\n```\n$ pip install --upgrade httpie-aws-authv4\n```\n\nYou should now see `aws4` under `--auth-type / -A` in `$ http --help` output.\n\n## Simple Usage\n\n### Credentials in default profile/environment variables/instance profile\nThis authentication plugin looks for credentials in the same [precedence that the AWS CLI tool](http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#config-settings-and-precedence) does.\n\n```\n$ http --auth-type aws4 https://asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com/dev/test\n```\n\n### Extra arguments\nUsing the `--auth` parameter, you can specify explicit parameters to be used in the calculation of the Sigv4 signature.\n\n```\n$ http --auth-type aws4 --auth access_key=AWSACCESSKEYXXX,secret_key=AWSSECRETKEYXXX,service=execute-api,region=ap-southeast-2 https://asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com/dev/test\n```\n\n#### Auth options\nThe following arguments are supported via the `--auth` flag.  They can be referenced via their full or short name for convenience.\n\n* access_key (ak) - AWS Access Key.\n* secret_key (sk) - AWS Secret Key.\n* profile (p) - AWS profile to use.\n* domain (d) - Domain name to use when signing the request.\n* service (s) - AWS service name to use when signing the request (ie, `execute-api`).\n* region (r) - AWS region the endpoint is located in.\n\n#### Specify credentials profile on the CLI\nYou can specify another profile than the default profile:\n\n```\n$ http --auth-type aws4 --auth profile=XXX https://asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com/dev/test\n```\n\n### Specify service and region\nIf for some reason you are not hitting the AWS endpoint directly (common with API Gateway), you will need to specify the AWS provided service and region:\n\n```\n$ http --auth-type aws4 --auth s=execute-api,r=eu-west-1 https://api.awesomeservice.net/dev/test\n$ http --auth-type aws4 --auth service=execute-api,region=eu-west-1 https://api.awesomeservice.net/dev/test\n```\n### Specify endpoint\nInstead of specifying service and region you can specify domain which is then parsed.\n\n```\n$ http --auth-type aws4 --auth d=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test\n$ http --auth-type aws4 --auth domain=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test\n```\n### Specify credentials and endpoint\n\n```\n$ http --auth-type aws4 --auth ak=ACCESSKEYXXX,sk=AWSSECRETKEYXXX,d=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test\n$ http --auth-type aws4 --auth access_key=ACCESSKEYXXX,secret_key=AWSSECRETKEYXXX,domain=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test\n```\n\n### Specify credentials profile and endpoint\n\n```\n$ http --auth-type aws4 --auth p=XXX,d=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test\n$ http --auth-type aws4 --auth profile=XXX,domain=asdf123a9sas.execute-api.ap-southeast-2.amazonaws.com https://api.awesomeservice.net/dev/test\n```\n\n### Calling AWS services that require extra information\n\nMany AWS services do not require any extra information to be passed other than the URL, such as the following call to the\nS3 service which will list all S3 Buckets in the given AWS account:\n\n```\nhttp -A aws4 s3.us-east-1.amazonaws.com\n```\n\nHowever, some AWS services will require extra information to be passed using query string parameters.  By default, ``httpie`` passes\nextra parameters as a JSON body. ``httpie`` can be told to pass extra parameters as form fields using the ``-f`` flag like so:\n\n```\n$ http -f -A aws4 ec2.us-east-1.amazonaws.com Action=DescribeVpcs Version=2015-10-01\n```\n\nwhere the *Action* and *Version* parameters were passed to the EC2 service to call the **DescribeVpcs** API.\n\nAlternatively instead of using the ``-f`` flag, ``==`` can be used for each parameter like so:\n\n```\n$ http -A aws4 ec2.us-east-1.amazonaws.com Action==DescribeVpcs Version==2015-10-01\n```\n\n## Credits\n\nAll of the heavy lifting (the signing process) is handled by [aws-requests-auth](https://github.com/DavidMuller/aws-requests-auth)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faidan-%2Fhttpie-aws-authv4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faidan-%2Fhttpie-aws-authv4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faidan-%2Fhttpie-aws-authv4/lists"}