SDK · TypeScript
PropRaven TypeScript SDK
Isomorphic typed client for the PropRaven API. Generated from OpenAPI 3.1 via Stainless, published to npm with SLSA provenance via GitHub Actions OIDC.
Install
npm install @propraven/sdk
# or pnpm add @propraven/sdk
# or yarn add @propraven/sdkNode 18+, modern browsers, Deno, Cloudflare Workers, Bun. ESM + CJS dual export.
Quickstart
import Propraven from "@propraven/sdk";
const client = new Propraven({
apiKey: process.env.PROPRAVEN_API_KEY!,
});
// Single parcel
const parcel = await client.v1.parcels.retrieve("37183:0012345");
console.log(parcel.owner_name, parcel.assessed_value);
// Owner pierce
const portfolio = await client.v1.owners.retrievePortfolioSummary("BLACKROCK FUND ADVISORS");
// Coverage stats
const cov = await client.v1.retrieveCoverage();
console.log(`${cov.total_parcels.toLocaleString()} parcels across ${cov.states_covered} states`);Webhook signature verification
Works in Node, Edge, Workers, Deno — uses Web Crypto, no Node-specific deps.
import { verifyWebhook, WebhookVerificationError } from "@propraven/sdk";
// In your route handler — pass the RAW body, not parsed JSON
export async function POST(request: Request) {
const rawBody = await request.text();
const sig = request.headers.get("X-PropRaven-Signature") ?? "";
try {
await verifyWebhook({
secret: process.env.PROPRAVEN_WEBHOOK_SECRET!,
signatureHeader: sig,
payload: rawBody,
});
} catch (e) {
if (e instanceof WebhookVerificationError)
return new Response("Forbidden", { status: 401 });
throw e;
}
const event = JSON.parse(rawBody);
// process event...
}Provenance
Every published version has an SLSA provenance attestation. Verify any install:
npm install @propraven/sdk
npm audit signatures