Metadata-Version: 2.4
Name: openfolio
Version: 0.1.0
Summary: Thin zero-dependency client for the OpenFolio public-query API (clean public government data, entity + parcel keyed)
Author: OpenFolio
License: MIT
Project-URL: Homepage, https://dtodenbach--pq-api-serve.modal.run
Keywords: public data,government data,parcel,entity resolution,api
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# openfolio (Python SDK)

Thin, **zero-dependency** client for the OpenFolio public-query API — clean public
government data (134 datasets / 49M records), entity- and parcel-keyed.

## Install (from repo, until the PyPI release)

```bash
pip install "git+https://github.com/dodenbach/blueoceanleads.git#subdirectory=public-query/sdk/python"
# or from a checkout:
pip install -e public-query/sdk/python
```

## First call

```python
import openfolio
c = openfolio.Client(api_key="pq_...")        # or export OPENFOLIO_API_KEY=pq_...

c.search("BROOKLYN BREWERY", limit=5)          # 2 credits
c.parcel("4098390003")                         # 1 credit — owner + permits + evictions + ...
c.entity("REPUBLIC SERVICES OF FLORIDA")       # 2 credits — cross-source dossier
c.owns("EIN:123456789")                        # 3 credits — ownership portfolio
c.context(zip="11432")                         # 1 credit — ACS/FEMA/BLS/NOAA/EIA stack
c.datasets(); c.freshness(); c.account()       # free

c.last_credits                                 # {'charged': 2, 'remaining': 498}
for r in c.iter_search("liquor license", page_size=100, max_records=300):
    ...                                        # paged (each page = one metered call)
```

No key yet? `POST /signup {"email": "..."}` on the API returns a key + 500 free credits.

## CLI

```bash
export OPENFOLIO_API_KEY=pq_...
openfolio search "BROOKLYN BREWERY" --limit 5
openfolio parcel 4098390003
openfolio entity "REPUBLIC SERVICES OF FLORIDA"
openfolio context --zip 11432
openfolio balance
```
