tokentifyai-usagemeter
v0.1.2
Published
Out-of-band AI API usage metering SDK
Maintainers
Readme
Tokentify UsageMeter (Node.js)
Out-of-band AI API usage metering for Node.js. After setup, use fetch or http/https for provider calls; the SDK captures usage automatically.
Install
npm install tokentifyai-usagemeterSetup
1. Environment (API key is global)
Copy .env.example to .env. Keep the API key in .env (or your deployment environment)—do not commit it.
cp .env.example .env# .env — required
USAGEMETER_API_KEY=your_ingest_api_key
# optional (SDK default if unset)
USAGEMETER_COLLECTOR_URL=http://205.209.126.182:8006| Variable | Required | Where to set |
|----------|----------|----------------|
| USAGEMETER_API_KEY | Yes | .env or process environment |
| USAGEMETER_COLLECTOR_URL | No | Default http://205.209.126.182:8006; override in .env |
| APP_NAME | No | .env (default default) |
Load .env in your app with dotenv or your framework’s env loader before calling init().
2. Initialize
import { init, tag, flush } from "tokentifyai-usagemeter";
// API key from environment
init({
apiKey: process.env.USAGEMETER_API_KEY!,
appName: process.env.APP_NAME,
collectorUrl: process.env.USAGEMETER_COLLECTOR_URL,
});
// First run: verify collector is reachable
init({
apiKey: process.env.USAGEMETER_API_KEY!,
verifyConnection: true,
});
// Production (skip health check after first successful setup)
init({
apiKey: process.env.USAGEMETER_API_KEY!,
verifyConnection: false,
});| Option | When to use |
|--------|-------------|
| verifyConnection: true | First run; pings GET /health on the collector |
| verifyConnection: false | Production after setup is confirmed |
Init parameters
| Parameter | Source |
|-----------|--------|
| apiKey | Required — USAGEMETER_API_KEY from .env / environment |
| appName | Argument or APP_NAME in .env |
| collectorUrl | Argument or USAGEMETER_COLLECTOR_URL in .env |
| debug | Optional logging (default false) |
| verifyConnection | Default false |
Call init() before any AI API traffic. The SDK patches fetch and http/https to record token usage.
3. Launch (v0.1.1)
.env:
USAGEMETER_API_KEY=your_ingest_api_keyapp.mjs:
import "dotenv/config";
import { init, flush } from "tokentifyai-usagemeter";
init({ apiKey: process.env.USAGEMETER_API_KEY });
const response = await fetch("https://api.openai.com/v1/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_OPENAI_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-4o",
messages: [{ role: "user", content: "hi" }],
}),
});
console.log(response.status);
await flush();node app.mjs4. Develop from this repo
cd tokentify-sdk-node
npm install
npm run build
cp .env.example .env # set USAGEMETER_API_KEY
node -e "
import { init } from './dist/index.js';
init({ apiKey: process.env.USAGEMETER_API_KEY, verifyConnection: false });
console.log('ok');
"Optional tags around a request:
import { tag } from "tokentifyai-usagemeter";
await tag({ userId: "u123", team: "backend" }, async () => {
await fetch("https://api.anthropic.com/v1/messages", { /* ... */ });
});