@middlebrick/api-client
v0.1.0
Published
middleBrick API client — zero-dependency, native fetch
Readme
@middlebrick/api-client
Zero-dependency TypeScript client for the middleBrick API security scanning platform. Uses native fetch — works in Node.js, Cloudflare Workers, and browsers.
Install
npm install @middlebrick/api-clientQuick Start
import { MiddleBrickClient } from "@middlebrick/api-client";
const client = new MiddleBrickClient({
apiKey: "mb_your_key_here",
});
// Scan and wait for results
const result = await client.scanAndWait({
apiUrl: "https://api.example.com/v1/users",
method: "GET",
});
console.log(result.overall); // 72
console.log(result.letterGrade); // "C"
console.log(result.findings); // [{ severity: "high", title: "...", ... }]API
new MiddleBrickClient(opts)
| Option | Type | Required | Description |
|--------|------|----------|-------------|
| apiKey | string | Yes | Your middleBrick API key |
| baseUrl | string | No | API base URL (default: https://middlebrick.com) |
Methods
scanApi(params) — Submit a scan
Returns { scanId: string }. Does not wait for completion.
getScan(scanId) — Get scan results
Returns a ScanResult with score, grade, categories, and findings.
listScans(params?) — List previous scans
Optional filters: limit, offset, status. Returns ScanListResult.
scanAndWait(params, opts?) — Scan and poll until done
Submits a scan and polls until completed or failed. Default timeout: 5 minutes.
Error Handling
import { MiddleBrickClient, MiddleBrickError } from "@middlebrick/api-client";
try {
const result = await client.scanAndWait({ apiUrl: "https://api.example.com" });
} catch (err) {
if (err instanceof MiddleBrickError) {
console.error(err.message); // "Unauthorized"
console.error(err.statusCode); // 401
}
}Types
All types are exported: ScanResult, ScanListResult, ScanListItem, Finding, LetterGrade, Severity, PatentDimensions, ClientOptions, ScanParams, ListScansParams.
License
MIT — Zevlat Intelligence
