@meterbox/node
v0.1.3
Published
Typed Node.js client for the Meterbox /v1 API, generated from the platform's OpenAPI spec. Shared by the React component SDK and tenant backends.
Readme
@meterbox/node
Typed Node.js client for the Meterbox /v1 API. Generated from the platform's
OpenAPI spec via @hey-api/openapi-ts: every public /v1
endpoint is a typed function with full request/response types (TypeScript
declarations included).
Used by @meterbox/react for
embeddable components; also fine to use directly in your backend.
Install
npm install @meterbox/nodeUse
const { MeterboxClient, getV1Plans, postV1CustomersByIdCredits } = require("@meterbox/node");
new MeterboxClient({
apiKey: process.env.METERBOX_API_KEY, // mb_live_... from Settings > API keys
// baseUrl: "https://meterbox.ai", the default
});
const { data: plansResponse } = await getV1Plans();
const { data: grant } = await postV1CustomersByIdCredits({
path: { id: "cus_42" },
body: { amount_usd: 25, type: "promotional" },
});API keys are scoped to one environment (sandbox or production), so the key you pass picks the environment.
apiKey is sent as Authorization: Bearer <key>. On a self-hosted deployment
you can pass the operator key as adminKey instead (sent as X-Admin-Key).
MeterboxClient configures the generated client singleton, so every operation
imported from @meterbox/node picks up that config. To talk to more than one
Meterbox deployment from one process, pass client: per operation (each
operation accepts one as an override).
Requires Node.js 18 or later.
Regenerate (maintainers)
From a checkout of the Meterbox monorepo:
cd sdks/node
npm run generateThe script dumps the current spec, runs @hey-api/openapi-ts against it, and
compiles CommonJS + .d.ts into dist/, which is what ships. Regenerate
whenever the API surface changes and commit the dist/ diff.
