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 ships official, fully typed SDKs for Python and TypeScript / JavaScript. Both wrap the same v2 REST API, use the exact same snake_case field names you see in the API reference, and handle the boilerplate for you — client-side rate limiting, retries with backoff on 429/5xx, auto-pagination, and a typed error hierarchy.

Python SDK

pip install blitz-api-py — sync + async clients, Pydantic v2 models, Python 3.10+.

TypeScript / JavaScript SDK

npm install blitz-api-js — Zod-validated types, ESM + CJS, Node 20+.

Install

pip install blitz-api-py
# or: uv add blitz-api-py

Why use an SDK?

  • Fully typed — Pydantic v2 (Python) / Zod-inferred types (TS) for every request filter and response field, with editor autocomplete.
  • Auto-pagination — iterate every result across pages without writing a cursor or page loop.
  • Resilient by default — automatic retries with backoff on 429 and 5xx, plus a typed exception hierarchy.
  • Client-side rate limiting — a single client instance stays under your key’s request-per-second limit.
  • Forward-compatible — fields the API adds later are preserved, never dropped or rejected.
Never expose your API key in client-side code (browsers, mobile apps). Both SDKs send the key in the x-api-key header — always call Blitz from your backend. See Authentication.

Quickstart

Both SDKs read the key from the BLITZ_API_KEY environment variable (or take it explicitly), then expose the same four namespaces.
from blitz_api import BlitzAPI

with BlitzAPI() as client:
    # LinkedIn profile URL -> verified work email.
    email = client.enrichment.email(
        person_linkedin_url="https://www.linkedin.com/in/example-person",
    )
    if email.found:
        print(email.email)

Endpoint coverage

Every v2 endpoint is a typed method, grouped into four namespaces. Method names and fields are identical across both SDKs.
NamespaceMethodREST endpointAPI reference
accountkey_info()GET /v2/account/key-infoGet API key details
searchpeople()POST /v2/search/peopleFind people
searchcompanies()POST /v2/search/companiesCompany search
searchemployee_finder()POST /v2/search/employee-finderEmployee finder
searchwaterfall_icp()POST /v2/search/waterfall-icp-keywordWaterfall ICP
enrichmentemail()POST /v2/enrichment/emailFind work email
enrichmentphone()POST /v2/enrichment/phoneFind mobile & direct phone
enrichmentemail_to_person()POST /v2/enrichment/email-to-personReverse email lookup
enrichmentphone_to_person()POST /v2/enrichment/phone-to-personReverse phone lookup
enrichmentcompany()POST /v2/enrichment/companyCompany enrichment
enrichmentdomain_to_linkedin()POST /v2/enrichment/domain-to-linkedinDomain to LinkedIn
enrichmentlinkedin_to_domain()POST /v2/enrichment/linkedin-to-domainLinkedIn to domain
utilscurrent_date()POST /v2/utils/current-dateCurrent date & time
utilscompany_employment_distribution()POST /v2/utils/company-employment-distributionEmployment distribution

Next steps

Python SDK guide

Install, auth, async, pagination, configuration, and error handling for blitz-api-py.

TypeScript / JavaScript SDK guide

Install, auth, pagination, configuration, and error handling for blitz-api-js.

Pagination

Stream results across pages and cap spend with max_items.

Rate limits & retries

The client-side limiter, automatic 429/5xx retries, and timeout behavior.

Authentication

How API keys work and how to health-check your key.

API reference

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