Documentation
How to send metrics, explore charts, set up alerts, and use StatFlow from the dashboard.
Getting started
StatFlow creates a chart the first time you send a data point. No stat registration step.
- Create a free account and sign in to the dashboard.
- Open Settings → API Keys and create a key with write access.
- Send a metric from your app or the curl example in the next section.
- Open Stats in the sidebar — your new metric appears with a live chart.
Send metrics
Send JSON to the public API with your API key. Each request adds one or more data points.
- Use your API key as a Bearer token in the Authorization header.
- POST a stat name, numeric value, and type (counter or value).
- Use counter for things you increment (page views, errors). Use value for gauges (queue depth, temperature).
- Send batches when you have many points at once — up to 1,000 per request.
Example — send your first point:
curl -X POST https://api.statflow.dev/v1/ingest
-H "Authorization: Bearer sf_your_key_here"
-H "Content-Type: application/json"
-d '{"stat":"page.views","value":1,"type":"counter"}' API base URL: https://api.statflow.dev. Full endpoint list in API endpoints; plan limits in Rate limits.
Stats & charts
Every metric you send gets its own chart automatically.
- Open Stats in the sidebar to see all metrics in your account.
- Click a stat to open its detail page — zoom the time range, switch resolution, and view recent values.
- Add annotations on the chart to mark deploys, incidents, or other events.
- Export CSV from the stat page when you need a spreadsheet copy.
- Move stats you no longer need to trash; restore them from the trash view if you change your mind.
Import data
Bring historical data into StatFlow without replaying every point from your old system.
- From Overview, choose Import historical data (or open Import in the sidebar).
- Follow the import wizard for your source — StatFlow pulls stat names, types, and history.
- Wait for the job to finish, then confirm the imported stats under Stats.
- Point live traffic at StatFlow’s ingest API so new data continues flowing in.
Dashboards
Combine multiple stats on one screen for a team view or status board.
- Open Dashboards → New dashboard and give it a name.
- Add stats as tiles and arrange the layout.
- On Pro and Team plans, use Generate with AI to build a dashboard from your metrics automatically.
- Tune auto-dashboard and digest preferences under Settings → AI.
Alerts
Get notified when a metric crosses a threshold, stops reporting, or matches a rule you define.
- Open Alerts → Create alert and pick the stat to watch.
- Choose alert type: threshold (value above/below a line), delta (change over time), or dead-man (no data received).
- On Pro and Team, describe an alert in plain language — StatFlow compiles it once, then monitors with classical checks.
- Send notifications to email or configure webhooks under Settings → Integrations.
- Pause or edit alerts from the alerts list; open delivery history to see what fired.
AI features
Pro and Team plans include AI-assisted monitoring. Enable it account-wide first, then turn features on per stat where needed.
- Open Settings → AI and turn on Account AI access (admins only).
- On a stat’s detail page, enable anomaly detection to flag unusual spikes or drops.
- Enable the data-quality watchdog on stats that should report on a schedule — you’ll be alerted when data stops arriving.
- Review detected events under Anomalies in the sidebar.
- Optional: turn on the email digest in Settings → AI, pick daily or weekly, and use Preview in browser to see a sample (preview never sends email).
- Team plans can run root-cause analysis from an anomaly to see correlated metrics.
AI narration uses your monthly AI call quota. Classical detection and alert monitoring do not consume AI calls after initial setup.
Public sharing & TV
Share live views outside your account when you want a public status page or office display.
- Open a dashboard and enable public sharing — StatFlow gives you a link anyone can open without signing in.
- Use the public link for status pages, support docs, or embeddable charts on your site.
- Open TV mode from a public dashboard for a full-screen, auto-rotating view on an office monitor.
Public dashboards expose only the metrics on that board. Turn sharing off when you no longer want the data visible.
API keys
API keys are for sending and querying metrics from your servers and scripts.
- Open Settings → API Keys → Create key.
- Copy the secret immediately — it is shown only once.
- Choose read, write, or both. Write access includes read.
- Revoke keys you no longer use; optional expiration dates limit long-lived credentials.
Authorization: Bearer sf_your_api_keyAPI endpoints
Authenticated routes use Authorization: Bearer sf_your_api_key. Base URL: https://api.statflow.dev. Write scope is required for ingest, import, and delete routes.
Ingest
Send counters and values. Stats are created automatically on first data point.
Stats
List metrics and query time-series data.
Annotations
Timeline markers for deploys, incidents, and notes.
Public dashboards
Read-only access to dashboards you have published. No API key required.
Rate limits
Plan limits for API throughput, request sizes, and monthly usage.
StatFlow enforces sliding-window request limits and monthly plan quotas server-side. When a limit is exceeded, the API returns HTTP 429 with a Retry-After (seconds until the window resets) header and a JSON body like { "error": "…" }. Honor Retry-After and back off before retrying.
Plan throughput and monthly quotas are also summarized on the pricing page. Security overview: /security.
Public developer API throughput
Separate read and write counters per authenticated account. Writes include ingest, batch, and import. Applies to: POST /v1/ingest, /v1/ingest/batch, /v1/stats/batch, /v1/ingest/import, /v1/ingest/import/csv and GET /v1/stats, /v1/stats/{id}/data, /v1/stats/{id}/metadata, /v1/stats/{id}/export.
| Plan | Write requests / min | Read requests / min |
|---|---|---|
| Hobby | 30 | 60 |
| Pro | 300 | 300 |
| Team | 1,000 | 600 |
| Enterprise | 1,000 | 600 |
Unauthenticated fallback: 100 write/min, 30 read/min. Used when the caller is unauthenticated or the plan cannot be resolved.
Request body size limits
| Feature | Limit | Window | Keyed by |
|---|---|---|---|
| Single-point ingest | 1 KB | Per request | Route |
| Batch ingest, import, CSV import | 5 MB | Per request | Route |
- Single-point ingest: POST /v1/ingest
- Batch ingest, import, CSV import: POST /v1/ingest/batch, /v1/ingest/import, /v1/ingest/import/csv, /v1/stats/batch
Monthly plan quotas
These reset each calendar month (UTC). Data-point overages return HTTP 429; exhausted AI call budgets return HTTP 402 with an upgrade message.
| Plan | Data points / month | AI calls / month |
|---|---|---|
| Hobby | 10,000 | Not included |
| Pro | 1,000,000 | 500 |
| Team | 10,000,000 | 3,000 |
| Enterprise | 10,000,000 | 3,000 |