Skip to main content
Agents & LLMs: a Markdown version of this page is available by appending .md to the URL, and the full documentation index is at llms.txt.
blitz-api-js is the official, typed TypeScript SDK for the Blitz API. It is fetch-based, Zod-validated, ships both ESM and CommonJS builds with .d.ts / .d.cts types, and uses snake_case request and response fields that match the API reference exactly.

npm

blitz-api-js on the npm registry.

GitHub

Source, changelog, and issues.

Install

Requires Node.js 20+ (or any runtime with a global fetch). Ships both ESM and CommonJS builds.

Quickstart

CommonJS works too:

Authentication

Pass the key explicitly or via the BLITZ_API_KEY environment variable. It is sent in the x-api-key header on every request.
Never expose your API key in client-side code (browsers, mobile apps). Always call Blitz from your backend.

Endpoints

All methods are grouped into four namespaces. Each takes a single options object (snake_case keys) and returns a typed, Zod-validated response. The three search list methods (people, companies, employee_finder) return a paginated PagePromise (see Pagination); waterfall_icp and the enrichment / utils / account methods return their response directly.

client.account

client.enrichment

client.utils

Pagination

The search methods (people, companies, employee_finder) return a PagePromiseawait it for the first page, or for await to stream every item across all pages (each fetched on demand).
See Pagination for max_items, .collect(), manual paging, page metadata, and the per-result billing caveat.

Configuration

A single client instance stays under your per-endpoint request-per-second limit (rate_limit_rps, default 5) and retries automatically on 429 — see Rate limits & retries.

Error handling

401 / 402 / 404 throw immediately; 429 and 5xx are retried automatically; timeouts surface as APITimeoutError (not retried). See Rate limits & retries for the full retry and timeout behavior.

Types & enums

Response objects keep their snake_case wire keys and preserve unknown fields — if the API adds a property before this SDK models it, the value is still present (typed as unknown); known fields stay precisely typed.
Enum-backed filter fields (e.g. industry, job_level, continent) accept a known value — autocompleted from a union like Industry — or any raw string, so a value missing from the vendored taxonomy never blocks you.

Next steps

Python SDK

The same API surface with sync + async clients.

Field Normalization

Accepted values for industry, job level, job function, and geography filters.

API reference

Full request/response schemas and an interactive try-it console.

Recipes

End-to-end workflows: build an ICP list, enrich it, and sync to your CRM.