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

Other Language Clients

Choosing the Right Client

Use CaseRecommended ClientFeatures
Basic server-side trackingNode.js ClientSimple HTTP requests, batch sending
API accessAPI ClientFull REST API, authentication, rate limiting
High-performance cachingRedis ClientRedis integration, rate limiting, session storage
Database integrationDrizzle ClientDirect database access, typed queries
Python web appsPython ClientDjango/FastAPI integration, async support
Go microservicesGo ClientGin/Echo middleware, high performance
PHP applicationsPHP ClientLaravel 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-client

Common 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.dev

Error 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