Simple, beautiful numeric data tracking via API
Num Pub is a minimalist service for tracking numeric values over time. Post numbers via a simple API and visualize them with beautiful, interactive charts.
Perfect for tracking signups, active users, revenue, or any metric you want to monitor. Each num has a unique URL, a write key for security, and a clean view showing your latest value with historical trends.
Nums can be public (listed on the homepage) or private (accessible only via direct URL). Perfect for sharing public metrics or keeping sensitive data private.
Just start posting to any @:slug URL! The first POST with a write_key creates the num, and subsequent POSTs with the same write_key update it.
For private nums, use a UUID or non-guessable slug (e.g., @a3f9c2e8-abc123) since anyone can access a num if they know its slug.
POST to any slug to create your first data point. The num will be created automatically on first POST:
curl -XPOST https://num.pub/@your-metric-name \
-H "Content-Type: application/json" \
-d '{
"name": "Daily Active Users",
"value": 1842,
"write_key": "your-secret-password",
"number_format": "integer"
}'
POST again to add new data points:
curl -XPOST https://num.pub/@your-metric-name \
-H "Content-Type: application/json" \
-d '{
"value": 1950,
"write_key": "your-secret-password"
}'
1. Protect your nums with a write_key
If you leave write_key blank, anyone can write to your num! Always set a strong password to prevent unauthorized updates.
2. Use non-guessable slugs for private nums
Anyone who knows your slug can view your num. For private/sensitive data, use a UUID or random string:
/@7f3e9a2b-c4d1-4e8f-9b3a-1c5d7e8f9a0b
Set listed: false to keep it off the homepage.
/@:slug
Create or update a num with a new value
name
Display name (optional, can be updated later)
value
Numeric value to record (required)
write_key
Secret password (required, set on first POST). ⚠️ Warning: If left blank, anyone can write to your num!
timestamp
Custom timestamp (optional, defaults to now)
listed
Make public (true) or private (false) - public nums appear on homepage (optional, defaults to true)
number_format
Format type: "integer", "float", "money", "percent" (optional, defaults to "integer")
/@:slug
View the num in HTML format with charts
/@:slug.json
Retrieve the num and values as JSON
Collect multiple nums on a single page to create custom dashboards with live charts
/dashboard/:slug
Create or update a dashboard with multiple nums
name
Display name for the dashboard (optional)
write_key
Secret password (required, set on first POST)
num_slugs
Array of num slugs to display (optional, order matters)
listed
Make public (true) or private (false) - public dashboards appear on homepage (optional, defaults to true)
curl -XPOST https://num.pub/dashboard/my-dashboard \
-H "Content-Type: application/json" \
-d '{
"name": "My Metrics Dashboard",
"write_key": "your-secret-password",
"num_slugs": ["daily-users", "revenue", "signups"]
}'
/dashboard/:slug
View the dashboard in HTML with all nums and charts
/dashboard/:slug.json
Retrieve the dashboard and all nums as JSON
Just POST to your unique URL and start tracking!