Quri API Meter
Last updated 2026-06-14
What this unlocks
Install the Quri API Meter in your own backend and Quri reads your API the way it reads your marketing and revenue — per-endpoint calls, error rate, latency, and which routes are bottlenecks — so the thing you actually ship shows up next to everything else, with no second dashboard.
Connect it in Quri
- Open /app/api-health in Quri and create an API write key for your backend.
- Install the meter in your service: npm i @quri/api-meter.
- Add the one-line middleware to your app and pass your deploy version (so a slow release is attributable).
- Make sure the meter flushes before shutdown, then open /app/api-health — your endpoint breakdown appears within minutes.
Get your credentials
- There is no third-party console for this — the meter runs inside your own backend.
- Decide which deploy version string to send (for example your git tag or release id) so regressions tie to a release.
- Keep the write key in your server environment, not in client code — it identifies your workspace to the ingest endpoint.
Access Quri reads with
- Metadata only — the meter records a normalized route (ids collapsed to :id inside the SDK), method, status, and timing.
- It never reads request bodies, query strings, headers, or any personal data, so raw values never leave your server.
Troubleshooting
- I installed the meter but API Health shows no data.
- Confirm the write key matches the one from /app/api-health and that the meter actually flushes — short-lived or serverless processes must call flush before they exit, or no batch is ever sent.
- Does the meter slow down my API or capture sensitive data?
- No. It aggregates in-process and posts small batched summaries out of the request path, and it records metadata only — never bodies, headers, or ids — so there is nothing sensitive to leak and no per-request network hop.
- Why are all my routes showing as one endpoint?
- The SDK normalizes paths to a template (/users/123 → /users/:id). If distinct routes collapse together, pass the framework route path (req.path in Express) rather than the raw URL so each endpoint groups on its own.