Documentation Index
Fetch the complete documentation index at: https://docs.esperr.com/llms.txt
Use this file to discover all available pages before exploring further.
SDKs Versus IntegrationsUse the SDKs when the integration needs to call Esper from application code. If
you want a stack-specific entry point first, start with the
Integrations guides.
Available Client Libraries
- TypeScript/JavaScript Client - Lightweight client for Node.js and browser applications
- Python Client - Lightweight client for Python applications
- Rust Client - Lightweight client for high-performance Rust applications
Features
All SDKs provide:- Runtime decisions: Send request context and receive an allow, challenge, or block response
- Mitigation Actions: Automatically handle allow, challenge, and block responses
- Challenge Verification: Verify user responses to challenges
- Beacon Events: Send telemetry data for analysis
- Usage Statistics: Monitor API usage and performance
- Retry Logic: Automatic retries with exponential backoff
- Type Safety: Full type definitions (where applicable)
Installation
TypeScript/JavaScript
Python
Rust
Quick Start
All SDKs follow a similar pattern:- Initialize client with your API key
- Send traffic to beacon so Esper can analyze the request and update state
- Check mitigation for a later incoming request against active mitigation state
- Handle response based on action (allow/block/challenge)
Configuration
All SDKs support similar configuration options:| Option | Description | Default |
|---|---|---|
apiKey | Your Esper API key | Required |
apiUrl | Esper API endpoint | https://api.esperr.com |
timeout | Request timeout | 30 seconds |
maxRetries | Maximum retry attempts | 3 |
retryDelay | Base delay between retries | 1 second |
Error Handling
All SDKs provide structured error handling:- API Errors: When the API returns an error response
- Connection Errors: Network connectivity issues
- Timeout Errors: Request timeout exceeded
- Validation Errors: Invalid request data