Node.js SDK
The official Dreep client for Node.js and TypeScript. Upload media, transform it at delivery time, and sign private URLs without writing a single fetch call or adding a single dependency.
Zero Dependencies
Built on native fetch and node:crypto. Nothing else lands in your lockfile, so there is no third-party code in your install path.
Fully Typed
Written in TypeScript and ships its own types. Every transform parameter is autocompleted, and an invalid one fails at compile time.
ESM and CommonJS
Import or require, on Node 18 and up. Every release is verified against both module systems before it publishes.
Uploading is one call
Point it at a file and a folder. You get back a stored asset with a ready-to-use delivery URL, and every size you need after that is built locally with no round trip.
Uploads that fit the file
Send small files straight through the API, or presign a direct-to-storage upload so large files and browser clients never route bytes through your server.
Transform at delivery
Resize, crop, convert and compress by appending parameters to a URL. One original serves every variant, cached at the edge.
Signed URLs in one call
Private folders get time-limited links without hand-rolling HMAC signatures, including the canonicalisation the API verifies against.
Errors you can branch on
Typed errors for auth, validation, conflicts and plan limits. A quota error carries the feature, the ceiling and current usage.
import { Dreep } from "dreep";
const dreep = new Dreep({ apiKey: process.env.DREEP_API_KEY });
// Upload, resized and converted on the way in
const asset = await dreep.upload({
file: fs.createReadStream("hero.jpg"),
folder: "marketing/2026",
transform: { width: 1200, format: "webp" },
});
// Any size you need, with no network call
dreep.url(asset, { width: 400 });Every release is signed
The package publishes straight from CI with npm provenance, so each version carries a cryptographic attestation linking it to the exact commit that built it. No long-lived tokens exist anywhere in the release path.
Start building with the SDK
Install the package, drop in an API key, and ship your first upload in minutes.