Skip to content

treq

605 15 60 NOASSERTION
25.5.0 (3 Jun 2025) Dec 28 2012 212.8 thousand (month)

treq is a Python library for making HTTP requests that provides a simple, convenient API for interacting with web services. It is inspired byt the popular requests library, but powered by Twisted asynchronous engine which allows promise based concurrency.

treq provides a simple, high-level API for making HTTP requests, including methods for GET, POST, PUT, DELETE, etc. It also allows for easy handling of JSON data, automatic decompression of gzipped responses, and connection pooling.

treq is a lightweight library and it's easy to use, it's a good choice for small to medium-sized projects where ease of use is more important than performance.

In web scraping treq isn't commonly used as it doesn't support HTTP2 but it's the only Twisted based HTTP client. treq is also based on callback/errback promises (like Scrapy) which can be easier to understand and maintain compared to asyncio's corountines.

Highlights


uses-twistedno-http2

Example Use


```python from twisted.internet import reactor from twisted.internet.task import react from twisted.internet.defer import ensureDeferred import treq

treq can be used with twisted's reactor with callbacks

response_deferred = treq.get( "http://httpbin.org/get" )

or POST

response_deferred = treq.post( "http://httpbin.org/post", json={"key": "value"}, # JSON data={"key": "value"}, # Form Data )

add callback or errback

def handle_response(response): print(response.code) response.text().addCallback(lambda body: print(body)) def handle_error(failure): print(failure)

this callback will be called when request completes:

response_deferred.addCallback(handle_response)

this errback will be called if request fails

response_deferred.addErrback(handle_error)

this will be called if request completes or fails:

response_deferred.addBoth(lambda _: reactor.stop()) # close twisted once finished

if name == 'main': reactor.run()

Note that treq can also be used with async/await:

async def main(): # content reads response data and get sends a get request: print(await treq.content(await treq.get("https://example.com/")))

if name == 'main': react(lambda reactor: ensureDeferred(main()))

Alternatives / Similar


53,883 2.33.1 (2026-03-30 16:09:13 ago) Feb 14 2011 compare
15,183 0.28.1 (2024-12-06 15:37:21 ago) Jul 26 2019 compare
16,395 3.13.5 (2026-03-31 21:56:30 ago) Jul 26 2019 compare
5,944 v0.6.1 (2024-03-02 18:08:29 ago) Feb 23 2022 compare
primp new
504 1.2.2 (2026-04-03 07:11:15 ago) Jun 01 2024 compare
1,147 7.45.7 (2025-09-24 13:35:56 ago) Feb 25 2003 compare
1,751 0.7.1 (2024-07-13 09:07:25 ago) Feb 23 2022 compare
1,001 0.9.2 (2024-12-01 02:55:27 ago) Feb 23 2022 compare

Other Languages

8,860 3.3.2 (2023-11-30 14:10:12 ago) Dec 28 2012 compare
108,987 1.15.0 (2026-04-08 16:09:38 ago) Aug 29 2014 compare
got
14,897 15.0.1 (2026-04-08 16:15:35 ago) Mar 27 2014 compare
1,631 3.5.0 (2026-03-12 22:24:55 ago) Dec 11 2011 compare
16,610 10.1.1 (2024-10-22 17:26:05 ago) Aug 22 2011 compare
5,927 2.14.1 (2026-02-07 15:17:15 ago) Dec 19 2009 compare
1,172 1.4.2 (2026-03-20 19:18:25 ago) Oct 31 2009 compare
707 2.9.0 (2025-02-22 01:13:49 ago) Jul 25 2009 compare
5,889 0.24.2 (2026-01-14 22:54:36 ago) Jul 25 2009 compare
4,131 1.6.0 (2026-03-10 12:58:26 ago) Oct 06 2009 compare
985 1.4.8 (2023-08-15 11:00:00 ago) May 06 2012 compare
23,447 7.10.0 (2025-08-23 22:36:01 ago) Nov 14 2011 compare
1,517 1.0.5 (2024-02-12 21:10:00 ago) Nov 22 2014 compare
378 18.1.0 (2025-07-24 23:01:15 ago) Aug 06 2011 compare
1,219 1.1.7 (2020-08-31 21:38:00 ago) Oct 25 2009 compare
2,033 v8.0.8 (2026-03-30 15:14:47 ago) Apr 28 2019 compare
mechanize new
4,440 2.14.0 (2025-01-05 18:30:46 ago) Jul 25 2009 compare
908 1.1.3 (2026-03-05 00:04:35 ago) Sep 25 2013 compare
req
4,781 v3.57.0 (2025-12-16 09:07:40 ago) Nov 20 2023 compare
11,632 v2.17.2 (2026-02-14 22:43:18 ago) Aug 05 2024 compare
505 1.1.4 (2020-02-07 22:04:51 ago) Apr 20 2010 compare
107 1.6.0 (2024-07-19 19:50:00 ago) Nov 09 2016 compare
3,577 v2.0.17 (2025-12-12 17:47:19 ago) Oct 06 2013 compare
1,924 1.3.0 (2024-09-23 13:16:34 ago) Nov 11 2011 compare
1,803 1.0.0 (2024-05-01 11:33:16 ago) Apr 14 2012 compare
165 2.3.0 (2021-03-18 00:10:00 ago) Dec 22 2019 compare
3,104 0.17.0 (2026-03-25 01:20:02 ago) Mar 20 2015 compare
Was this page helpful?