blitz-api-py is the official, typed Python SDK for the Blitz API. It ships sync and async clients over httpx, Pydantic v2 response models, TypedDict request filters, and a py.typed marker so mypy/pyright see the types in your own code.
PyPI
blitz-api-py on the Python Package Index.GitHub
Source, changelog, and issues.
Install
Quickstart
Authentication
Pass the key explicitly or via theBLITZ_API_KEY environment variable. It is sent in the x-api-key header on every request.
Async
UseAsyncBlitzAPI for async/await. Every method mirrors the sync client.
Endpoints
All methods are grouped into seven namespaces. Enum-backed filter fields (e.g.Industry, JobLevel, Continent) accept either an enum member or a raw string.
client.account
client.search
client.jobs
client.company
client.enrichment
client.utils
client.changelog
Pagination
The list methods (search.people, search.companies, search.employee_finder, jobs.search, jobs.company, company.tam_by_jobs) return an auto-paginating page — iterate it and the SDK fetches each subsequent page for you.
max_items, manual paging, page metadata, and the per-result billing caveat.
Usage & rate limit
Every metered/v2 response carries a fair_usage block: what the call cost, what is left on the plan, your rate-limit headroom, and a request id to quote to support. Read it to meter a long run without extra key_info() calls.
InsufficientRecordsError (402) carries the block too, so you can read next_reset_at without a second call. Two endpoints don’t return it: the public changelog.list(), which is not metered, and account.key_info(), which reports the balance in its own top-level records_remaining, next_reset_at, and max_requests_per_seconds fields.
Configuration
429 — see Rate limits & retries. rate_limit_rps defaults to 5, below the API’s 10 req/s per endpoint, so raise it to your key’s max_requests_per_seconds if you need the full throughput. Each method also accepts a per-call timeout:
Error handling
401 / 402 / 404 raise immediately; 429 and 5xx are retried automatically; read timeouts surface as APITimeoutError (not retried). InsufficientCreditsError still exists as a deprecated alias of InsufficientRecordsError, so older except blocks keep working. See Rate limits & retries for the full retry and timeout behavior.
Types & enums
Response models are Pydantic v2 objects with attribute access and IDE autocomplete. Enum helpers live inblitz_api.types:
Next steps
TypeScript / JavaScript SDK
The same API surface for Node and the browser-adjacent runtimes.
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.

