@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-client
Quick Start
import { MiddleBrickClient } from "@middlebrick/api-client";
const client = new MiddleBrickClient({
apiKey: "mb_your_key_here",
});
const result = await client.scanAndWait({
apiUrl: "https://api.example.com/v1/users",
method: "GET",
});
console.log(result.overall);
console.log(result.letterGrade);
console.log(result.findings);
API
new MiddleBrickClient(opts)
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);
console.error(err.statusCode);
}
}
Types
All types are exported: ScanResult, ScanListResult, ScanListItem, Finding, LetterGrade, Severity, PatentDimensions, ClientOptions, ScanParams, ListScansParams.
License
MIT — Zevlat Intelligence