Changelog

What 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 →