API Reference

This section contains the complete API reference for RequestX.

Overview

RequestX provides a simple, intuitive API that's compatible with HTTPX. The API is organized into several main components:

Component Description
HTTP Functions Top-level functions for making HTTP requests
Client Classes Client and AsyncClient for persistent connections
Response Object The Response class for HTTP responses
Exceptions Exception classes for error handling

Quick Reference

Making Requests

import requestx

# Module-level functions
response = requestx.get(url, **kwargs)
response = requestx.post(url, data=None, json=None, **kwargs)
response = requestx.put(url, data=None, **kwargs)
response = requestx.patch(url, data=None, **kwargs)
response = requestx.delete(url, **kwargs)
response = requestx.head(url, **kwargs)
response = requestx.options(url, **kwargs)

Common Parameters

requestx.get(
    url,
    params=None,           # URL query parameters
    headers=None,          # HTTP headers
    cookies=None,          # Cookies to send
    auth=None,             # Authentication
    timeout=None,          # Request timeout
    follow_redirects=True, # Follow redirects
)

Response Properties

response.status_code     # HTTP status code (int)
response.headers         # Response headers (Headers)
response.text            # Response text (str)
response.content         # Response bytes (bytes)
response.json()          # Parse JSON response (dict/list)
response.url             # Final URL (str)
response.cookies         # Response cookies (Cookies)
response.elapsed         # Request duration (float)
response.http_version    # HTTP version (str)

Status Checks

response.is_success      # True for 2xx status
response.is_redirect     # True for 3xx status
response.is_client_error # True for 4xx status
response.is_server_error # True for 5xx status
response.is_error        # True for 4xx or 5xx

Client Usage

# Synchronous client
with requestx.Client(base_url="https://api.example.com") as client:
    response = client.get("/users")

# Asynchronous client
async with requestx.AsyncClient() as client:
    response = await client.get("https://api.example.com/users")

Error Handling

from requestx import (
    RequestError,
    HTTPStatusError,
    ConnectError,
    TimeoutException,
)

try:
    response = requestx.get(url, timeout=10)
    response.raise_for_status()
except HTTPStatusError as e:
    print(f"HTTP error: {e}")
except ConnectError as e:
    print(f"Connection error: {e}")
except TimeoutException as e:
    print(f"Timeout: {e}")
except RequestError as e:
    print(f"Request error: {e}")

Module Contents

Classes

Class Description
Client Synchronous HTTP client with connection pooling
AsyncClient Asynchronous HTTP client
Response HTTP response object
Headers Case-insensitive header dictionary
Cookies Cookie jar
Timeout Timeout configuration
Proxy Proxy configuration
Auth Authentication configuration
Limits Connection limits configuration

Functions

Function Description
get() Send a GET request
post() Send a POST request
put() Send a PUT request
patch() Send a PATCH request
delete() Send a DELETE request
head() Send a HEAD request
options() Send an OPTIONS request
request() Send a request with custom method

Exceptions

Exception Description
RequestError Base exception for all request errors
TransportError Transport-level errors
ConnectError Connection establishment failed
TimeoutException Request timed out
HTTPStatusError HTTP 4xx/5xx response
TooManyRedirects Exceeded redirect limit
DecodingError Response decoding failed
InvalidURL Invalid URL provided

Detailed Reference