@evercam/sdk
v0.8.0
Published
Convenient class-based SDK wrapping @evercam/api
Readme
@evercam/sdk
A convenient, class-based TypeScript SDK for working with Evercam APIs, cameras, snapshots, and ExNVR workflows.
Installation
npm install @evercam/sdk axios humps moment-timezoneNote: axios, humps, and moment-timezone are peer dependencies.
Quick Start
import { Evercam } from "@evercam/sdk";
const evercam = new Evercam({
credentials: {
username: "your-username",
password: "your-password"
}
});
// Connect and authenticate
await evercam.connect();
// Fetch a camera
const camera = await evercam.getCamera("your-camera-exid");
console.log(`Connected to: ${camera.name}`);
// Download a snapshot
await camera.downloadSnapshot({
timestamp: new Date().toISOString(),
directory: "./snapshots"
});
// Query hourly snapshot availability and merge adjacent ranges
const availability = await camera.getSnapshotAvailabilityRanges({
from: "2026-01-01T00:00:00Z",
to: "2026-01-05T00:00:00Z",
});
console.log(availability);Admin Mode
When you need to bypass regular camera permission constraints, create the client in admin mode and authenticate with admin user credentials:
const adminEvercam = new Evercam({
mode: "admin",
credentials: {
username: process.env.EVERCAM_ADMIN_USERNAME!,
password: process.env.EVERCAM_ADMIN_PASSWORD!,
},
});
await adminEvercam.connect();
const camera = await adminEvercam.getCamera("your-camera-exid");In user mode, the SDK reads camera details from the standard camera endpoints and adapts the payload into the shared Camera model. In admin mode, it prefers the Admin API for camera details and status logs, then falls back to the standard endpoints with the same admin token when the admin-specific route is unavailable.
Features
- Class-based API: Intuitive
Evercam,Camera, andExNvrclasses. - Auto-authentication: Managed token refreshes and login flows.
- Admin Mode: Switches to Admin API endpoints for camera operations that require elevated access.
- Availability Queries: Hour-level snapshot availability ranges for arbitrary time windows.
- Timelapse Support: Local Node-based timelapse generation using
ffmpeg. - ExNVR Integration: Easy footage exports and NVR management.
- Full Type Safety: Written in TypeScript with complete type definitions.
License
ISC
