ChangelogWhat changed
This portal, the SDK, and the developer program. Platform-level changes — endpoints, pricing, marketplace features — are on the product changelog ↗.
@node-data/sdk@0.4.02026-08-05
Installable, and usable from plain JavaScript
- addedDual ESM + CommonJS build. `require("@node-data/sdk")` previously threw ERR_PACKAGE_PATH_NOT_EXPORTED — CommonJS consumers could not use the package at all.
- addedType declarations emitted for both builds, so moduleResolution of bundler, node16, and nodenext all resolve. All three are checked.
- addedEvery deploy packs the real npm tarball to /node-data-sdk-latest.tgz, so `npm install <url>` is a genuine one-command install under the real package name — no vendoring, and a one-line change when the registry entry lands.
- addedA CommonJS test suite covering entry-point resolution, export parity, instanceof identity across the boundary, and the webhook helpers.
- changedDocs no longer tell you to copy source into your project.
nodedata.dev@1.0.02026-08-05
nodedata.dev launches
- addedDeveloper portal with docs, API explorer, and four interactive tools.
- addedAPI playground that relays real requests server-side, so keys never enter page JavaScript.
- addedWebhook signature signer and verifier running the SDK's own Web Crypto helpers in-browser.
- addedKey inspector with local format analysis and an optional GET /me check.
- addedInference cost calculator across the Node model catalog.
- addedCommand palette on ⌘K with a handful of commands that aren't in the menu.
- noteTwelve easter eggs. Hints are public at /eggs; find them all for a bonus unit.
dev program@1.0.02026-08-05
The Node Data Developer Program
- addedEight units, 41 lessons, and 200+ exercises covering the web platform, HTML/CSS, JavaScript, TypeScript, React, Next.js, APIs, and shipping.
- addedSix exercise types, including code exercises that execute in your browser and are graded against real assertions.
- addedXP, ten rank levels, day streaks, daily goals, hearts, and eighteen badges.
- addedProgress export and import — no account, so nothing to lose but the localStorage key.
- noteFree forever, no email capture, no upsell. That's the whole model.
@node-data/sdk@0.3.02026-08-05
Streaming inference and webhook helpers
- addednd.inference.stream() and streamToText() with a proper SSE parser that buffers across chunk boundaries.
- addedverifyRequest(), verifyWebhook(), and signPayload() on Web Crypto — same code on Node, Bun, Deno, Workers, and Vercel Functions.
- addednd.webhookEndpoints CRUD plus deliveries() for debugging a silent handler.
- addednd.ping() — one round trip that reports whether the key works and what it can do.
- changedStreaming calls now force maxRetries: 0; replaying a partial stream would duplicate tokens.
- changedTimeout and caller-supplied AbortSignal are composed, so a cancellation is distinguishable from a timeout.
@node-data/sdk@0.2.02026-07-22
Pagination, retries, typed errors
- addedPage<T> is both the first page and an async iterable over every page, with .all(limit) and .next().
- addedTyped error subclasses per status, each carrying the API's stable code and x-request-id.
- addedAutomatic retries on 408/409/429/5xx and network failures, with full-jitter backoff honouring Retry-After.
- addedPermissionError.requiredScope, parsed from the API message.
- fixedNon-JSON error bodies (proxy HTML pages) now surface as a readable ApiError instead of a SyntaxError.
@node-data/sdk@0.1.02026-07-08
First cut
- addednd.models, nd.datasets, nd.account, and nd.payouts against the live v1 endpoints.
- addedZero-dependency fetch transport with per-call timeout and header overrides.
- addedRefuses to construct with a live key in a browser unless explicitly overridden.
- addednd.request() escape hatch for endpoints the SDK doesn't model yet.
Versioning
The SDK follows semver. Before 1.0 a minor bump may include a breaking change to a method signature — the changelog will say so explicitly. The API itself is versioned in the path, so /v1 keeps working regardless of what the client does.
Current SDK reference →