> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blitz-api.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Official SDKs

<div style={{position:'absolute',width:'1px',height:'1px',padding:0,margin:'-1px',overflow:'hidden',clipPath:'inset(50%)',whiteSpace:'nowrap',border:0}}>
  > **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](https://docs.blitz-api.ai/llms.txt).
</div>

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](/api-reference/account/get-api-key-details), and handle the boilerplate for you — client-side rate limiting, retries with backoff on `429`/`5xx`, auto-pagination, and a typed error hierarchy.

<CardGroup cols={2}>
  <Card title="Python SDK" icon="python" href="/sdks/python">
    `pip install blitz-api-py` — sync + async clients, Pydantic v2 models, Python 3.10+.
  </Card>

  <Card title="TypeScript / JavaScript SDK" icon="node-js" href="/sdks/typescript">
    `npm install blitz-api-js` — Zod-validated types, ESM + CJS, Node 20+.
  </Card>
</CardGroup>

## Install

<CodeGroup>
  ```bash Python theme={null} theme={null}
  pip install blitz-api-py
  # or: uv add blitz-api-py
  ```

  ```bash JavaScript / TypeScript theme={null} theme={null}
  npm install blitz-api-js
  # or: pnpm add blitz-api-js  /  yarn add blitz-api-js
  ```
</CodeGroup>

## 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 per-endpoint request-per-second limit.
* **Forward-compatible** — fields the API adds later are preserved, never dropped or rejected.

<Warning>
  **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](/guide/getting-started/authentication).
</Warning>

## Quickstart

Both SDKs read the key from the `BLITZ_API_KEY` environment variable (or take it explicitly), then expose the same five namespaces.

<CodeGroup>
  ```python Python theme={null} theme={null}
  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)
  ```

  ```ts TypeScript theme={null} theme={null}
  import { BlitzAPI } from "blitz-api-js";

  const client = new BlitzAPI();

  // LinkedIn profile URL -> verified work email.
  const email = await client.enrichment.email({
    person_linkedin_url: "https://www.linkedin.com/in/example-person",
  });
  if (email.found) console.log(email.email);
  ```
</CodeGroup>

## Endpoint coverage

Every v2 endpoint is a typed method, grouped into five namespaces. Method names and fields are identical across both SDKs.

| Namespace    | Method                                 | REST endpoint                                            | API reference                                                                                  |
| :----------- | :------------------------------------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------- |
| `account`    | `key_info()`                           | `GET /v2/account/key-info`                               | [Get API key details](/api-reference/account/get-api-key-details)                              |
| `search`     | `people()`                             | `POST /v2/search/people`                                 | [Find people](/api-reference/people-search/find-people)                                        |
| `search`     | `companies()`                          | `POST /v2/search/companies`                              | [Company search](/api-reference/company-search/company-search)                                 |
| `search`     | `employee_finder()`                    | `POST /v2/search/employee-finder`                        | [Employee finder](/api-reference/people-search/employee-finder)                                |
| `search`     | `waterfall_icp()`                      | `POST /v2/search/waterfall-icp-keyword`                  | [Waterfall ICP](/api-reference/people-search/waterfall-icp-search)                             |
| `jobs`       | `search()`                             | `POST /v2/jobs/search`                                   | [Search jobs](/api-reference/job-search/search-jobs)                                           |
| `jobs`       | `company()`                            | `POST /v2/jobs/company`                                  | [Search company jobs](/api-reference/job-search/company-jobs)                                  |
| `enrichment` | `email()`                              | `POST /v2/enrichment/email`                              | [Find work email](/api-reference/people-enrichment/find-work-email)                            |
| `enrichment` | `phone()`                              | `POST /v2/enrichment/phone`                              | [Find mobile & direct phone](/api-reference/people-enrichment/find-mobile-&-direct-phone)      |
| `enrichment` | `email_to_person()`                    | `POST /v2/enrichment/email-to-person`                    | [Reverse email lookup](/api-reference/people-enrichment/reverse-email-lookup)                  |
| `enrichment` | `phone_to_person()`                    | `POST /v2/enrichment/phone-to-person`                    | [Reverse phone lookup](/api-reference/people-enrichment/reverse-phone-lookup)                  |
| `enrichment` | `company()`                            | `POST /v2/enrichment/company`                            | [Company enrichment](/api-reference/company-enrichment/company-enrichment)                     |
| `enrichment` | `domain_to_linkedin()`                 | `POST /v2/enrichment/domain-to-linkedin`                 | [Domain to LinkedIn](/api-reference/company-enrichment/domain-to-linkedin-url)                 |
| `enrichment` | `linkedin_to_domain()`                 | `POST /v2/enrichment/linkedin-to-domain`                 | [LinkedIn to domain](/api-reference/company-enrichment/linkedin-url-to-domain)                 |
| `enrichment` | `company_distribution_by_country()`    | `POST /v2/enrichment/company-distribution-by-country`    | [Company distribution by country](/api-reference/utilities/company-employment-distribution)    |
| `enrichment` | `company_distribution_by_department()` | `POST /v2/enrichment/company-distribution-by-department` | [Company distribution by department](/api-reference/utilities/company-department-distribution) |
| `utils`      | `current_date()`                       | `POST /v2/utils/current-date`                            | [Current date & time](/api-reference/utilities/get-current-date-and-time)                      |

## Next steps

<CardGroup cols={2}>
  <Card title="Python SDK guide" icon="python" href="/sdks/python">
    Install, auth, async, pagination, configuration, and error handling for `blitz-api-py`.
  </Card>

  <Card title="TypeScript / JavaScript SDK guide" icon="node-js" href="/sdks/typescript">
    Install, auth, pagination, configuration, and error handling for `blitz-api-js`.
  </Card>

  <Card title="Pagination" icon="layer-group" href="/sdks/pagination">
    Stream results across pages and cap spend with `max_items`.
  </Card>

  <Card title="Rate limits & retries" icon="gauge-high" href="/sdks/rate-limits">
    The client-side limiter, automatic `429`/`5xx` retries, and timeout behavior.
  </Card>

  <Card title="Authentication" icon="key" href="/guide/getting-started/authentication">
    How API keys work and how to health-check your key.
  </Card>

  <Card title="API reference" icon="code" href="/api-reference/account/get-api-key-details">
    Full request/response schemas and an interactive try-it console.
  </Card>
</CardGroup>
