Quri

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

  1. Open /app/api-health in Quri and create an API write key for your backend.
  2. Install the meter in your service: npm i @quri/api-meter.
  3. Add the one-line middleware to your app and pass your deploy version (so a slow release is attributable).
  4. Make sure the meter flushes before shutdown, then open /app/api-health — your endpoint breakdown appears within minutes.

Get your credentials

  1. There is no third-party console for this — the meter runs inside your own backend.
  2. Decide which deploy version string to send (for example your git tag or release id) so regressions tie to a release.
  3. 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.

Related guides