Developer Libraries

JavaScript SDK

Install `@bgblur/privacy-blur` for Node.js 18+ with TypeScript declarations included.

Installation

Shell
npm install @bgblur/privacy-blur
Package: @bgblur/privacy-blur with built-in TypeScript declarations.

Authentication

Shell
export BGBLUR_AI_API_KEY="YOUR_API_KEY"

Get your API key from /developers/api-keys

Quick Start

Basic Usage

TypeScript
import { PrivacyBlur } from "@bgblur/privacy-blur";

const client = new PrivacyBlur({
  apiKey: process.env.BGBLUR_AI_API_KEY
});

await client.faceBlur({
  input: "image.jpg",
  output: "result.jpg",
  blurType: "gaussian"
});

Blur License Plates

TypeScript
import { PrivacyBlur } from "@bgblur/privacy-blur";

const client = new PrivacyBlur({
  apiKey: process.env.BGBLUR_AI_API_KEY
});

await client.licensePlateBlur({
  input: "car.jpg",
  output: "plates-blurred.jpg"
});

Anonymize Video

TypeScript
import { PrivacyBlur } from "@bgblur/privacy-blur";

const client = new PrivacyBlur({
  apiKey: process.env.BGBLUR_AI_API_KEY
});

await client.faceAnonymize({
  input: "interview.mp4",
  output: "anonymous-video.mp4"
});

Blur Custom Objects

TypeScript
import { PrivacyBlur } from "@bgblur/privacy-blur";

const client = new PrivacyBlur({
  apiKey: process.env.BGBLUR_AI_API_KEY
});

await client.blurAnything({
  input: "street.jpg",
  prompt: "person",
  output: "objects-blurred.jpg"
});

Dataset Processing

Batch process entire datasets with folder structure preservation.

TypeScript
import { DatasetProcessor } from "@bgblur/privacy-blur";

const processor = new DatasetProcessor({
  apiKey: process.env.BGBLUR_AI_API_KEY,
  maxWorkers: 4
});

const report = await processor.processDataset({
  datasetPath: "dataset",
  outputPath: "dataset_private",
  faceBlur: true,
  plateBlur: true,
  blurType: "pixelated"
});

console.log(report.toJSON());

CLI

Shell
# Blur faces
privacy-blur face-blur input.jpg output.jpg --blur-type gaussian

# Anonymize video
privacy-blur face-anonymize input.mp4 output.mp4

# Blur license plates
privacy-blur license-plate-blur car.jpg result.jpg

# Blur custom objects
privacy-blur blur-anything image.jpg result.jpg --prompt "person"

# Process dataset
privacy-blur dataset-process dataset dataset_private \
  --face-blur --plate-blur --blur-type pixelated

TypeScript

Type declarations are included with the package.

TypeScript
import { PrivacyBlur, type BlurType } from "@bgblur/privacy-blur";

const blurType: BlurType = "pixelated";
const client = new PrivacyBlur({
  apiKey: process.env.BGBLUR_AI_API_KEY
});

await client.faceBlur({
  input: "image.jpg",
  output: "result.jpg",
  blurType
});

Error Handling

TypeScript
import {
  InsufficientCreditsError,
  PrivacyBlur,
  PrivacyBlurError
} from "@bgblur/privacy-blur";

try {
  const client = new PrivacyBlur({
    apiKey: process.env.BGBLUR_AI_API_KEY
  });

  await client.faceBlur({
    input: "image.jpg",
    output: "result.jpg"
  });
} catch (error) {
  if (error instanceof InsufficientCreditsError) {
    console.error(error.message);
  } else if (error instanceof PrivacyBlurError) {
    console.error(`PrivacyBlur error: ${error.message}`);
  } else {
    throw error;
  }
}