@litemetrics/client
Client SDK for querying Litemetrics analytics data. Fetch stats, time series, events, users, and manage sites from your frontend or backend.
Installation
npm install @litemetrics/client
Quick Start
import { createClient } from '@litemetrics/client';
const client = createClient({
baseUrl: 'https://your-server.com',
siteId: 'your-site-id',
secretKey: 'your-secret-key',
});
Querying Stats
const overview = await client.getOverview(
['pageviews', 'visitors', 'sessions'],
{ period: '7d', compare: true }
);
const pages = await client.getStats('top_pages', { period: '30d', limit: 10 });
const referrers = await client.getStats('top_referrers', { period: '7d' });
const countries = await client.getTopCountries({ period: '30d', limit: 50 });
Time Series
const timeseries = await client.getTimeSeries('pageviews', {
period: '30d',
granularity: 'day',
filters: { 'geo.country': 'US' },
});
Segmentation Filters
All getStats and getTimeSeries calls accept filters:
const filtered = await client.getStats('top_events', {
period: '7d',
filters: {
'device.type': 'mobile',
'utm.source': 'newsletter',
'event_source': 'auto',
'event_subtype': 'button_click',
},
});
Including Bot Traffic
Bot-flagged events are excluded from every read by default. Pass includeBots: true
to surface them on getStats, getTimeSeries, getEventsList, getUsers, and
getUserDetail:
const allTraffic = await client.getStats('pageviews', {
period: '7d',
includeBots: true,
});
Events & Users
const events = await client.getEventsList({
type: 'pageview',
period: '24h',
limit: 50,
});
const users = await client.getUsers({ limit: 20 });
const user = await client.getUserDetail('visitor-id');
Retention
const retention = await client.getRetention({ period: '90d', weeks: 8 });
Site Management
import { createSitesClient } from '@litemetrics/client';
const sites = createSitesClient({
baseUrl: 'https://your-server.com',
adminSecret: 'your-admin-secret',
});
const { site } = await sites.createSite({ name: 'My App', domain: 'myapp.com' });
const { sites: allSites } = await sites.listSites();
await sites.updateSite(site.siteId, { allowedOrigins: ['myapp.com'] });
await sites.deleteSite(site.siteId);
await sites.regenerateSecret(site.siteId);
Available Metrics
pageviews | visitors | sessions | events | conversions | top_pages | top_referrers | top_countries | top_cities | top_events | top_conversions | top_exit_pages | top_transitions | top_scroll_pages | top_button_clicks | top_link_targets | top_browsers | top_os | top_devices
License
MIT