@enlistdev/sdk wraps the REST API in typed methods — same operations, same response shapes, autocomplete on every field.
import { Enlist } from "@enlistdev/sdk";const enlist = new Enlist({ apiKey: process.env.ENLIST_API_KEY });const signup = await enlist.waitlists.addSignup(waitlistId, { email: "ada@example.com", utm_source: "launch-tweet",});// signup.position -> 47// signup.total -> 1203signup.position and signup.total are typed numbers, not unknown JSON you have to assert.
npm install @enlistdev/sdk — no other client library or ORM required to call the API.
API error codes come back as typed error classes you can catch and branch on, not string matching.
REST, SDK, MCP, webhooks, and email — same key across all of them.