requests-aws-sign
This package provides AWS V4 request signing using the requests library.
What it is and what it does
requests-aws-sign is a thin wrapper that plugs AWS V4 request signing into the requests library's authentication system. It takes a boto3 credentials object, an AWS region, and a service name, then returns an auth handler that automatically signs outgoing HTTP requests with the required AWS headers (X-Amz-Date, X-Amz-Security-Token, Authorization). This lets you make authenticated calls to AWS services like Elasticsearch, API Gateway, or any other service that accepts IAM-signed requests.
The package depends on requests and boto3. It is designed to work with boto3's credential chain, so it can use environment variables, assume-role profiles, or EC2 instance IAM roles. However, the package has been abandoned since 2020-07-05 and was originally written for Python 2.6–3.5, raising questions about compatibility with modern Python and current AWS SDK versions.
Use it for:
- Sign requests to AWS Elasticsearch domains that require IAM authentication instead of basic auth.
- Authenticate direct HTTP calls to API Gateway endpoints protected by IAM policies.
- Build custom AWS service clients using requests when the official boto3 client is not suitable.
- Integrate AWS request signing into existing requests-based HTTP workflows without rewriting to boto3.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds AWS V4 request signing to the requests library, allowing you to authenticate HTTP requests to AWS services using IAM credentials.
No. The package is abandoned (last commit 2020-07-05) and targets Python versions that are now end-of-life. While it has low install friction and a permissive license, its compatibility with modern Python and current boto3/requests versions is unverified. For new projects, use boto3's built-in clients; for existing requests-based code, consider migrating or forking if you need to maintain it.
Install
requests-aws-sign on PyPI
pip
pip install requests-aws-signuv
uv add requests-aws-signpoetry
poetry add requests-aws-signInstalling requests-aws-sign
Before you install
Installation is straightforward with low friction. However, the package is abandoned—last release was 2020-07-05 and no commits since then. Compatibility with modern Python versions is unverified.
License in practice
Licensed under ISC (permissive), so you can use it freely in commercial and open-source projects without significant legal constraints.
Quickstart
pip install requests-aws-sign
import requests
from requests_aws_sign import AWSV4Sign
from boto3 import session
sess = session.Session()
creds = sess.get_credentials()
region = sess.region_name or 'ap-southeast-2'
auth = AWSV4Sign(creds, region, 'es')
response = requests.get('https://es-domain.ap-southeast-2.es.amazonaws.com/', auth=auth)
Requires valid AWS credentials available to boto3 (environment variables, IAM role, or profile configuration) and a specified AWS region.
Verify before relying
- Whether the package works with Python versions beyond 3.5 despite classifiers only listing up to 3.5.
- Whether it remains compatible with current versions of requests and boto3 given the 2020 last release date.
- Whether AWS V4 signing behavior has changed since 2020 in ways that would break this package.
Package facts
| License | ISC (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — requests, boto3 |
| Maintenance | abandoned — 2,231 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,114,213/month — #2,747 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: requests_aws_sign-0.1.6-py3-none-any.whl
Keywords: requests, aws
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
aws-msk-iam-sasl-signer-pythonGenerates IAM-signed SASL/OAUTHBEARER…
permissive · top 5,000 on PyPI
awscurlA curl-like command-line tool that…
permissive · top 15,000 on PyPI
requests-auth-aws-sigv4Adds AWS Signature Version 4 authentication to…
permissive · top 5,000 on PyPI
requests-aws4authAdds AWS Signature Version 4 authentication to…
permissive · top 1,000 on PyPI
requests-sigv4Adds AWS Signature Version 4 signing to…
permissive · top 5,000 on PyPI
aws-requests-authAdds AWS Signature Version 4 authentication to…
permissive · top 1,000 on PyPI
veracode-api-signingSigns HTTP requests destined for the Veracode…
permissive · top 15,000 on PyPI
cassandra-sigv4Adds AWS Signature Version 4 authentication to…
permissive · top 15,000 on PyPI
aws-request-signerSigns HTTP requests using AWS Signature V4,…
permissive · top 15,000 on PyPI
turnkey-api-key-stamperSigns Turnkey API requests with your API key…
permissive · top 15,000 on PyPI