Event tracking tools that act on every event in real time

Live in seconds
Events reach the feed and every chart seconds after you send them.
100 events a request
A batch counts as one request against the rate limit.
200 properties an event
Plan, amount, source: whatever you need to filter and chart by.
90 days of history
On every plan, for every event.
Send events from anywhere
An event is a name, a channel and whatever properties you want to attach. Send it from your backend, your frontend or a script.
One HTTP request
POST JSON to /v1/log with your project, channel and event. Any language that can make an HTTP request can send events; the docs have tested examples for each.
Batches of up to 100
/v1/batch takes up to 100 events in one request and counts as one request against the rate limit of 5 requests a minute per project.
Browser script
One script tag records pageviews (including single-page app navigation) and lets you track clicks with data attributes, no extra code.
Idempotent
Give an event an insert_id and LogZuno stores it once, however many times a retry sends it.
curl -sS -X POST "${LOGZUNO_ENDPOINT:-https://api.logzuno.app/v1}/log" \
-H "Authorization: Bearer $LOGZUNO_API_KEY" \
-H "Content-Type: application/json" \
-w "\nHTTP %{http_code}\n" \
-d '{
"channel": "signups",
"event": "User signed up",
"user_id": "user-123",
"description": "A new user created an account",
"icon": "🎉",
"notify": true,
"tags": { "plan": "growth", "source": "website" }
}'// Browser or any runtime with fetch. Ingest keys can only send data, so they
// are safe in front-end code; never put a read, admin or server key here.
const endpoint = "https://api.logzuno.app/v1";
const apiKey = "YOUR_INGEST_KEY";
const response = await fetch(`${endpoint}/log`, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
channel: "signups",
event: "User signed up",
user_id: "user-123",
icon: "🎉",
notify: true,
tags: { plan: "growth", source: "website" },
}),
});
console.log(response.status, await response.json());# Python 3, standard library only.
import json
import os
import urllib.error
import urllib.request
endpoint = os.environ.get("LOGZUNO_ENDPOINT", "https://api.logzuno.app/v1")
request = urllib.request.Request(
f"{endpoint}/log",
method="POST",
headers={
"Authorization": f"Bearer {os.environ['LOGZUNO_API_KEY']}",
"Content-Type": "application/json",
},
data=json.dumps({
"channel": "signups",
"event": "User signed up",
"user_id": "user-123",
"icon": "🎉",
"notify": True,
"tags": {"plan": "growth", "source": "website"},
}).encode(),
)
try:
with urllib.request.urlopen(request, timeout=10) as response:
print(response.status, response.read().decode())
except urllib.error.HTTPError as error:
# 4xx and 5xx responses: the body says why (and, for 429, when to retry).
print(error.code, error.read().decode())<?php
// PHP 8 with the curl extension.
$endpoint = getenv('LOGZUNO_ENDPOINT') ?: 'https://api.logzuno.app/v1';
$ch = curl_init("$endpoint/log");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('LOGZUNO_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'channel' => 'signups',
'event' => 'User signed up',
'user_id' => 'user-123',
'icon' => '🎉',
'notify' => true,
'tags' => ['plan' => 'growth', 'source' => 'website'],
]),
]);
$body = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), ' ', $body, PHP_EOL;A live feed you can actually read
Channels
Events are grouped into channels such as signups, billing or errors. Channels are created the first time an event names them, and can be muted for the whole team.
Icons and descriptions
Each event can carry an emoji and a description, so the feed reads like a log of what your business is doing, not a list of IDs.
Push for what matters
Send notify: true and team members who opted in get a browser push notification. Muted channels push to no one.
Filters
Filter the feed by channel, event, user and any property, with eight operators, including contains, greater than and is set.
Every chart your team needs, from the same events
Eleven ways to look at your events. Pick one to see what it answers and how it's built.
Line chart
Is it growing, and which segment drives it?
Teams use it for
- Weekly sign-ups by plan
- Errors an hour after a release
- Compare with the previous period
Built with
Signed upUnique usersBreakdown: planWeekly
Area chart
How much activity is there, day by day?
Teams use it for
- Daily active users
- Pageviews from people
- API calls a day
Built with
Any eventUnique usersDaily
Stacked bar chart
How does the total split, and how is the mix changing?
Teams use it for
- Revenue by plan each month
- Sign-ups by plan each week
- Events by channel: #billing, #signups, #errors
Built with
Payment receivedSum of amountBreakdown: planMonthly
Bar chart
Which one is the biggest?
Teams use it for
- Most used features this week
- Top pages by people
- Top countries
Built with
Feature usedUnique usersBreakdown: feature
Pie chart
What share does each part have right now?
Teams use it for
- Active accounts by plan
- Users by country
- Payments by currency
Built with
Any eventUnique groupsBreakdown: plan
Number tiles
What's the one number, and is it up?
Teams use it for
- MRR pushed from your code
- Trial to paid this month
- Sign-ups today
Built with
NumberCompare: previous period
Table
What are the exact values, row by row?
Teams use it for
- Most active accounts
- Events by page and country
- Revenue by plan and month
Built with
Any eventUnique usersBreakdown: account
Funnel
Where do people drop off between steps?
Teams use it for
- Pricing to paid
- Sign-up to activated
- Checkout steps
Built with
In orderPer userWithin 7 days
Retention cohorts
Do people come back, and are newer cohorts better?
Teams use it for
- Weekly retention after sign-up
- Return to a key feature
- Account retention
Built with
Signed upthen Used a featureWeekly
Frequency (power-user curve)
How many days do people actually use it?
Teams use it for
- Power users
- Habit strength by plan
- Engagement after a launch
Built with
Any eventDays activeLast 30 days
User list
Who exactly is in this group?
Teams use it for
- Drifting users to win back
- New sign-ups this week
- Power users to interview
Built with
Segment: DriftingPeriod: 14 days
Every event feeds everything else
Charts and funnels
Count events, unique users and groups, or sum and average any numeric property, and build per-user funnels from any sequence of events.
Users and groups
Events with a user_id build a user profile with a timeline; a group_id ties them to an account.
Alerts
Instant alerts fire on a single event matching your filters and post to email, Slack, Discord, Telegram, a webhook or browser push.
Property catalogue
LogZuno records every property it sees, with its type and sample values, so filters and charts suggest real keys.
Questions
What is an event?
A record that something happened: a name (User signed up), a channel (signups), an optional user, group, description and icon, and up to 200 properties such as plan or amount. LogZuno stores it with a timestamp for 90 days.
How fast do events show up?
Events are accepted in milliseconds and written in small batches, so they appear in the live feed and in charts within seconds.
Can I send events from my backend?
Yes, and for anything that matters (payments, sign-ups, errors) you should: backend events can't be blocked by ad blockers or lost when a browser tab closes.
What is event tracking?
Event tracking records specific actions people take in your product or on your site, such as signing up, paying or exporting a report, as named events with properties. Unlike pageview counts, events describe what people did, so they can drive funnels, retention, segments and alerts.
How do I track events?
Send a POST request to /v1/log with your API key, a channel and an event name, from any language that can make an HTTP request. For pages and clicks, add the LogZuno script tag and mark elements with data attributes. Send up to 100 events at once with /v1/batch.
What is the difference between event tracking and pageview tracking?
A pageview says someone loaded a URL. An event says someone did something: created a project, paid, invited a colleague. Pageviews tell you where people go; events tell you whether they got value. LogZuno records both in the same project.
How is this different from GA4 event tracking?
GA4 records events from the Google tag in the browser for marketing reports. LogZuno takes events from your backend as well as the browser, shows each one in a live feed within seconds, can push important ones to your phone or Slack, and ties them to users and accounts for product analytics. You can run both.
How many events can I send?
Each plan has a monthly allowance, from 50,000 to 500,000 events. Each project can make 5 ingestion requests a minute, and a batch of up to 100 events counts as one request. We email you at 80%, 90% and 100% of the allowance.
Read next
- DocsLogZuno quickstartLogZuno quickstart: start a trial, create a project, copy your API key and send your first event with one HTTP request, then watch it land in the feed.Read
- BlogReal-time event tracking, and when seconds matterReal-time event tracking explained: when seconds matter, how a live event feed works, what to send it, and how to use notifications without the noise.Read
- BlogEvent tracking examples for seven kinds of businessEvent tracking examples for SaaS, ecommerce, marketplaces, fintech, media, education and mobile apps, plus the mistakes that make events hard to trust.Read
Send your first event today.
7 days free on any plan, up to 500 events. Then from $17 a month. Cancel during the trial and you pay nothing.