Public API v1 • SDK (evolving)

Confera SDK

The simplest way to call the Public API from your server. Copy/paste examples included.

Stability note
The underlying Public API v1 is stable. The SDK is production-usable, but still evolving: expect additive methods and occasional naming cleanups over time. We use semver and keep breaking changes rare and explicit.

Install

Install
bash
pnpm add @confera/sdk

Configure

Keep your API key in a server environment variable. The SDK sends it using the X-API-Key header.

Create client
ts
import { createConferaPublicClient } from "@confera/sdk";

const confera = createConferaPublicClient({
  baseUrl: "https://your-domain",
  apiKey: process.env.CONFERA_API_KEY!,
});

Walkthrough (real projects)

This is the “do it once, do it right” guide: how to wire the SDK into a Next.js or Node app, keep keys secure, and ship a clean integration your team can maintain.

Templates

Start from a proven blueprint: Next.js Route Handlers, Express proxies, and ready-to-paste server endpoints.

SDK modules

Every module below has a dedicated, detailed page: what it does, required scopes, best practices, and examples that match the real API.

Examples

Health check
ts
await confera.health();
Schedule events
ts
const events = await confera.events.list({ limit: 50, offset: 0 });
const venues = await confera.events.listVenues({ limit: 200 });
const speakers = await confera.events.listSpeakers({ limit: 500 });
Badge check-in (kiosk)
ts
await confera.badges.checkin({ qr: "ABC123", location: "kiosk-1" });

Production

The SDK stays minimal — production reliability comes from good timeouts, safe retries, caching, and key hygiene.

Open the production playbook →

Security

  • Never put API keys in browser code.
  • Create separate keys per integration (website, kiosk, partner).
  • Use the smallest scopes needed.
  • Revoke keys immediately if leaked.

Errors

Non-2xx responses throw a ConferaApiError with status and optional code.

Handle errors
ts
import { ConferaApiError } from "@confera/sdk";

try {
  await confera.health();
} catch (e) {
  if (e instanceof ConferaApiError) {
    console.log(e.status, e.code, e.message);
  }
}