@beinfi/sdk
v0.3.0
Published
Infi SDK — email-code auth and revenue infrastructure for technical founders
Readme
@beinfi/sdk
Email-code auth and revenue infrastructure for technical founders. One SDK for login, usage metering and billing.
npm install @beinfi/sdkQuick start
import { Infi } from "@beinfi/sdk";
const infi = new Infi({
secretKey: process.env.INFI_SECRET_KEY!, // sk_test_... / sk_live_...
baseUrl: process.env.INFI_API_URL, // optional, defaults to https://api.beinfi.com
});Passing just a key uses the production defaults:
const infi = new Infi(process.env.INFI_SECRET_KEY!);Email-code login (public — no secret key needed)
// 1. send the 6-digit code
await infi.sendEmailCode({ slug: "your-app", email: "[email protected]", redirectTo: "/callback" });
// 2. verify it → get the redirect URL carrying a single-use auth code
const { redirectUrl } = await infi.verifyEmailCode({ slug: "your-app", email: "[email protected]", code: "123456" });
// navigate the browser to redirectUrl to finish the hosted flowExchange the auth code (server-side — secret key)
const result = await infi.exchangeCode(code); // from ?code= on your callback
// or straight from a request:
const result = await infi.exchangeCodeFromRequest({ url: req.url });
result.identity; // AppIdentity
result.customer; // { id, externalId, email, ... }
result.session; // { token, expiresAt } | undefinedMetering (server-side — secret key)
await infi.track({ customerId: "cus_123", meter: "tokens", value: "1200" });
await infi.trackBatch([
{ customerId: "cus_123", meter: "tokens", value: "1200" },
{ customerId: "cus_123", meter: "api_call", value: "1" },
]);React
import { InfiLogin } from "@beinfi/sdk/react";
<InfiLogin slug="your-app" redirectTo="/callback" />;Next.js
For App Router route handlers (Login, Callback, Usage), use
@beinfi/nextjs.
Config
| Option | Default | Notes |
| --- | --- | --- |
| secretKey | — | sk_... for server-side calls (exchange, metering). Public login needs no key. |
| baseUrl | https://api.beinfi.com | Infi API base URL. |
| authBaseUrl | https://api.beinfi.com | Hosted login base URL (served off the API host). |
Types are generated from the Infi OpenAPI spec, so requests and responses stay in sync with the API.
MIT © Infi
