Generated by GPT-5-mini| Requests (software) | |
|---|---|
| Name | Requests |
| Author | Kenneth Reitz |
| Developer | Python Software Foundation |
| Released | 2011 |
| Programming language | Python |
| Operating system | Cross-platform |
| License | Apache License 2.0 |
Requests (software) Requests is a popular HTTP library for the Python (programming language) ecosystem that simplifies making HTTP/1.1 requests, managing sessions, and handling responses. Originally created by Kenneth Reitz and maintained with contributions from individuals and organizations, Requests bridges low-level network APIs with high-level application use in contexts such as web scraping, APIs, and automation within environments like Django, Flask (web framework), and Ansible. The project has influenced tooling across open-source communities and enterprise stacks.
Requests abstracts the complexity of HTTP interactions and integrates with the Python Package Index distribution model. It wraps lower-level modules from the Python Software Foundation standard library to provide a user-friendly API adopted by developers working with services such as GitHub, Twitter, Amazon Web Services, Google Cloud Platform, and Microsoft Azure. The library emphasizes readability, robust defaults, and interoperability with testing frameworks like pytest and unittest (software).
Requests provides features including connection pooling, cookie persistence, header and parameter encoding, multipart file uploads, and streaming downloads. It supports authentication schemes used by providers such as OAuth, Basic access authentication, and JWT integrations common in Okta or Auth0 deployments. Additional capabilities include transparent redirection handling for interactions with endpoints like GitHub API and response content negotiation for formats from JSON to XML used by services like Stack Overflow and YouTube Data API.
Requests is implemented in Python (programming language) and built atop modules from the Python Standard Library such as urllib3 and httplib. The design follows principles advocated by contributors active in the Open Source Initiative ecosystem and aligns with packaging practices from setuptools and distribution via pip. Internally, Requests uses a session-oriented model to reuse TCP connections and integrates with TLS implementations maintained by projects like OpenSSL. Error handling maps network and protocol errors to specific exception types consistent with patterns from PEP 8 and the Python Enhancement Proposal process.
Typical usage involves importing the library and issuing methods corresponding to HTTP verbs in client code used by teams at Spotify, Dropbox, Pinterest, and Reddit. Common patterns include: - Performing a GET request and parsing JSON responses for integrations with APIs such as GitHub API and Twitter API. - Submitting POST requests with form data to services like Stripe (company) or PayPal. - Streaming large media downloads for projects involving YouTube or Vimeo content ingestion. Requests is often demonstrated in tutorials produced by educators associated with institutions such as MIT and Stanford University and appears in code examples in books published by O'Reilly Media.
Performance considerations include connection pooling and adapter customization to optimize throughput for high-volume services like Amazon (company) or Cloudflare-backed sites. Security depends on proper TLS configuration using OpenSSL and certificate validation practices compatible with browsers and services including Let's Encrypt. The library's maintainers coordinate vulnerability disclosures through channels used by projects like GitHub and CVE. For hardened deployments, operators integrate Requests with proxying solutions from NGINX and monitoring tools from New Relic or Datadog.
Requests originated with contributions from Kenneth Reitz and later stewardship that involved maintainers and contributors across organizations such as the Python Software Foundation and teams active on GitHub. The project follows collaborative workflows familiar to contributors from Mozilla Foundation and Apache Software Foundation projects, using issue trackers, pull requests, and continuous integration pipelines with services like Travis CI and GitHub Actions. Educational outreach and documentation efforts mirror practices at Read the Docs and community forums including Stack Overflow.
Requests is widely adopted across open-source projects, enterprise software, and academic research, influencing client libraries in languages beyond Python (programming language), and informing the design of SDKs from vendors such as Google and Microsoft. Its emphasis on ergonomics and readability contributed to wider appreciation of high-level HTTP clients in ecosystems including Ruby (programming language), JavaScript, and Go (programming language). Major distributions and frameworks, including Ansible and SaltStack, have relied on Requests or its patterns for interacting with RESTful services.
Category:Python (programming language) libraries Category:Free software programmed in Python Category:HTTP client libraries