ZENSTATS BETA IS LIVE

Track everything.
Automate the rest.

Frictionless analytics for your SaaS, websites, and backend APIs. Zero overhead, un-cheatable metrics, and ultra-secure signature validation.

Zero Friction. Universal Integration.

Choose your environment and see how incredibly simple it is.

Node.js
Node.jsNode.js Integration
await fetch('https://zenstats.arthuraugis.fr/api/track', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_SECRET' },
  body: JSON.stringify({ event: 'bot_command' })
});
Python
PythonPython Integration
import requests

requests.post( 
  'https://zenstats.../track',
  headers={'Authorization': 'Bearer YOUR_SECRET'},
  json={'event': 'command'}
)
PHP
PHPPHP Integration
$ch = curl_init('https://zenstats.../track');
curl_setopt($ch, CURLOPT_POSTFIELDS, ...);
curl_exec($ch);
Go
GoGo Integration
req, _ := http.NewRequest("POST", url, payload)
req.Header.Set("Authorization", "Bearer KEY")
client.Do(req)
cURL
cURLcURL Integration
curl -X POST https://zenstats.../track \
  -H "Authorization: Bearer SECRET" \
  -d '{"event":"bot_online"}'
HTML Meta
HTML MetaHTML Meta Integration
<meta name="zenstats-verification" content="KEY" />
Ruby
RubyRuby Integration
require 'net/http'

uri = URI('https://zenstats.../track')
req = Net::HTTP::Post.new(uri)
req['Authorization'] = 'Bearer KEY'
res = Net::HTTP.start(...)
Java
JavaJava Integration
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create(".../track"))
  .header("Authorization", "Bearer SECRET")
  .POST(BodyPublishers.ofString(json))
  .build();
C#
C#C# Integration
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
  new AuthenticationHeaderValue("Bearer", key);
await client.PostAsync(".../track", content);
Rust
RustRust Integration
let client = reqwest::Client::new();
let res = client.post("https://zenstats.../track")
    .bearer_auth(SECRET_KEY)
    .json(&payload)
    .send()
    .await?;
Swift
SwiftSwift Integration
var req = URLRequest(url: URL(string: ".../track")!)
req.httpMethod = "POST"
req.setValue("Bearer KEY", forHTTPHeaderField: "Authorization")
req.httpBody = try? JSONEncoder().encode(event)
let (data, _) = try await URLSession.shared.data(for: req)
Kotlin
KotlinKotlin Integration
val client = OkHttpClient()
val request = Request.Builder()
  .url("https://zenstats.../track")
  .header("Authorization", "Bearer SECRET")
  .post(body)
  .build()
client.newCall(request).execute()
Dart
DartDart Integration
final res = await http.post(
  Uri.parse('https://zenstats.../track'),
  headers: { 'Authorization': 'Bearer SECRET' },
  body: jsonEncode({'event': 'app_started'})
);
C++
C++C++ Integration
cpr::Response r = cpr::Post(cpr::Url{".../track"},
  cpr::Header{{"Authorization", "Bearer SECRET"}},
  cpr::Body{payload});
TypeScript
TypeScriptTypeScript Integration
import axios from 'axios';

await axios.post<ZenStatsResponse>('.../track', payload, {
  headers: { Authorization: `Bearer ${key}` }
});
Node.js
Node.jsNode.js Integration
await fetch('https://zenstats.arthuraugis.fr/api/track', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_SECRET' },
  body: JSON.stringify({ event: 'bot_command' })
});
Python
PythonPython Integration
import requests

requests.post( 
  'https://zenstats.../track',
  headers={'Authorization': 'Bearer YOUR_SECRET'},
  json={'event': 'command'}
)
PHP
PHPPHP Integration
$ch = curl_init('https://zenstats.../track');
curl_setopt($ch, CURLOPT_POSTFIELDS, ...);
curl_exec($ch);
Go
GoGo Integration
req, _ := http.NewRequest("POST", url, payload)
req.Header.Set("Authorization", "Bearer KEY")
client.Do(req)
cURL
cURLcURL Integration
curl -X POST https://zenstats.../track \
  -H "Authorization: Bearer SECRET" \
  -d '{"event":"bot_online"}'
HTML Meta
HTML MetaHTML Meta Integration
<meta name="zenstats-verification" content="KEY" />
Ruby
RubyRuby Integration
require 'net/http'

uri = URI('https://zenstats.../track')
req = Net::HTTP::Post.new(uri)
req['Authorization'] = 'Bearer KEY'
res = Net::HTTP.start(...)
Java
JavaJava Integration
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create(".../track"))
  .header("Authorization", "Bearer SECRET")
  .POST(BodyPublishers.ofString(json))
  .build();
C#
C#C# Integration
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
  new AuthenticationHeaderValue("Bearer", key);
await client.PostAsync(".../track", content);
Rust
RustRust Integration
let client = reqwest::Client::new();
let res = client.post("https://zenstats.../track")
    .bearer_auth(SECRET_KEY)
    .json(&payload)
    .send()
    .await?;
Swift
SwiftSwift Integration
var req = URLRequest(url: URL(string: ".../track")!)
req.httpMethod = "POST"
req.setValue("Bearer KEY", forHTTPHeaderField: "Authorization")
req.httpBody = try? JSONEncoder().encode(event)
let (data, _) = try await URLSession.shared.data(for: req)
Kotlin
KotlinKotlin Integration
val client = OkHttpClient()
val request = Request.Builder()
  .url("https://zenstats.../track")
  .header("Authorization", "Bearer SECRET")
  .post(body)
  .build()
client.newCall(request).execute()
Dart
DartDart Integration
final res = await http.post(
  Uri.parse('https://zenstats.../track'),
  headers: { 'Authorization': 'Bearer SECRET' },
  body: jsonEncode({'event': 'app_started'})
);
C++
C++C++ Integration
cpr::Response r = cpr::Post(cpr::Url{".../track"},
  cpr::Header{{"Authorization", "Bearer SECRET"}},
  cpr::Body{payload});
TypeScript
TypeScriptTypeScript Integration
import axios from 'axios';

await axios.post<ZenStatsResponse>('.../track', payload, {
  headers: { Authorization: `Bearer ${key}` }
});

Zero Bloat. Infinite Possibilities.

No heavy client SDKs to install. Send a single POST request to track perfectly without altering your core logic.

Websites

Use your Public Key right in the browser. We verify your domain dynamically to block fake traffic. No bloated tags.

Backend Servers

Designed explicitly for Node.js / Python environments. Easily track logic pathways, API usage, and user flows natively.

100% Open Source

Fully transparent and community-driven. Deploy it on your own infrastructure or use our hosted version with zero vendor lock-in and complete control.