Metadata-Version: 2.4
Name: generect
Version: 0.1.0
Summary: Official Python SDK for the Generect Live API
Project-URL: Documentation, https://docs.generect.com
Project-URL: Repository, https://github.com/generect/generect-sdks
Author-email: Generect <support@generect.com>
License-Expression: MIT
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Requires-Dist: httpx<1,>=0.24
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == 'dev'
Description-Content-Type: text/markdown

# generect (Python SDK)

```bash
pip install generect
```

```python
from generect import Generect

g = Generect(api_key="YOUR_API_TOKEN")  # or env GENERECT_API_KEY

count = g.search.database_leads_count(job_titles=["marketing manager"], locations=["Germany"])
leads = g.search.database_leads(job_titles=["marketing manager"], locations=["Germany"], per_page=10)
print(len(leads.data), "leads for", leads.amount_charged, "USD")

email = g.email.find(lead_id=leads.data[0]["id"])   # billed only if a valid email is found

job = g.enrich.database_leads_bulk(items=[{"linkedin_url": u} for u in urls])  # ≤50 items
done = g.enrich.wait_leads_bulk(job.job_id)          # polls until completed / error
```

- Automatic retries with exponential backoff on `429`/`5xx` (configurable `max_retries`).
- Typed errors: `InsufficientBalanceError` (402), `RateLimitError` (429), `AuthenticationError` (401)…
- Every response exposes its real USD cost: `resp.amount_charged`.
- Any endpoint, even future ones: `g.request("POST", "/search/database/leads/", json={...})`.

Docs: https://docs.generect.com · Errors: https://docs.generect.com/api-reference/errors
