SdkServer
HTTP Clients
Server-side HTTP clients for analytics tracking and API access
HTTP Clients
Server-side HTTP clients for sending analytics data and accessing the Entrolytics API from your backend applications.
JavaScript/TypeScript Clients
Node.js Client
Node.js HTTP client for server-side tracking
API Client
TypeScript API client for REST API access
Redis Client
Redis client with rate limiting and caching
Drizzle Client
Drizzle ORM client for database integration
Other Language Clients
Python Client
Python client for Django, FastAPI, and Flask
Go Client
Go client with Gin and Echo middleware
PHP Client
PHP client for Laravel and vanilla PHP
Choosing the Right Client
| Use Case | Recommended Client | Features |
|---|---|---|
| Basic server-side tracking | Node.js Client | Simple HTTP requests, batch sending |
| API access | API Client | Full REST API, authentication, rate limiting |
| High-performance caching | Redis Client | Redis integration, rate limiting, session storage |
| Database integration | Drizzle Client | Direct database access, typed queries |
| Python web apps | Python Client | Django/FastAPI integration, async support |
| Go microservices | Go Client | Gin/Echo middleware, high performance |
| PHP applications | PHP Client | Laravel integration, composer support |
Installation Quick Reference
# Node.js
npm install @entrolytics/node-client
# API Client
npm install @entrolytics/api-client
# Redis Client
npm install @entrolytics/redis-client
# Drizzle Client
npm install @entrolytics/drizzle-client
# Python
pip install entrolytics-python-client
# Go
go get github.com/entrolytics/client-go
# PHP
composer require entrolytics-php-clientCommon Patterns
All clients follow these common patterns:
Initialization
// Node.js
import { EntrolyticsClient } from '@entrolytics/node-client'
const client = new EntrolyticsClient({
websiteId: 'your-website-id',
apiKey: 'your-api-key'
})
// Python
from entrolytics_python_client import EntrolyticsClient
client = EntrolyticsClient(
website_id='your-website-id',
api_key='your-api-key'
)
# Go
import "github.com/entrolytics/client-go"
client := entrolytics.NewClient("your-website-id", "your-api-key")Event Tracking
// Track custom events
await client.track('signup', { plan: 'pro' })
// Track page views
await client.page('/dashboard', { title: 'Dashboard' })
// Identify users
await client.identify('user-123', { email: 'user@example.com' })Batch Operations
// Send multiple events in one request
await client.trackBatch([
{ event: 'page_view', properties: { path: '/home' } },
{ event: 'button_click', properties: { button: 'signup' } }
])Authentication
All clients support multiple authentication methods:
API Key Authentication
const client = new EntrolyticsClient({
websiteId: 'your-website-id',
apiKey: 'your-api-key'
})JWT Authentication (for server-to-server)
const client = new EntrolyticsClient({
websiteId: 'your-website-id',
jwt: 'your-jwt-token'
})Environment Variables
ENTROLYTICS_WEBSITE_ID=your-website-id
ENTROLYTICS_API_KEY=your-api-key
ENTROLYTICS_HOST=https://entrolytics.devError Handling
All clients provide comprehensive error handling:
try {
await client.track('event', { data: 'value' })
} catch (error) {
if (error instanceof EntrolyticsValidationError) {
console.error('Validation error:', error.message)
} else if (error instanceof EntrolyticsNetworkError) {
console.error('Network error:', error.message)
} else if (error instanceof EntrolyticsAuthError) {
console.error('Authentication error:', error.message)
}
}Performance Considerations
- Batching: Send multiple events in a single request
- Async Operations: Use async/await for non-blocking operations
- Caching: Cache frequently accessed data with Redis client
- Connection Pooling: Reuse HTTP connections for better performance
- Compression: Enable gzip compression for large payloads
Next Steps
- Choose the right client for your stack
- Follow the specific client documentation for detailed setup
- Check out the API reference for all available methods
- Review best practices for production deployments