Metadata-Version: 2.2
Name: simlir
Version: 0.1.0
Summary: Typed Python client for the simlir public product API
Author: simlir engineering
License: Release candidate only. Not licensed for redistribution. Final public license requires legal approval.
        
Keywords: product data,product search,shopping api,gtin,sku,ai
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE

# simlir

The typed Python client for the simlir public product API is intended for publication on PyPI as `simlir` version `0.1.0` under Apache-2.0. The SDK is open source; installing it does not provide free access to the Simlir service. API access still requires a Simlir account, API key, and any applicable credits or plan entitlement. See [`docs/commercialisation/DEVELOPER-CHANNEL-LICENSING.md`](../../docs/commercialisation/DEVELOPER-CHANNEL-LICENSING.md) for the public artefact scope and service boundary.

## Local verification

```bash
python -m compileall -q src
python -m unittest discover -s tests -p 'test_*.py'
python -m pip wheel --no-deps --no-build-isolation --wheel-dir /tmp/simlir-python-sdk-wheel .
```

## Intended consumer API

```python
from simlir import Simlir

client = Simlir(api_key="sk_...")
result = client.search(query="wireless headphones", market="GB", limit=10)
for product in result.results:
    print(product.title, product.price.amount, product.price.retailer)

exact = client.lookup(identifier="5051234567890", type="gtin", market="GB")
visual = client.search_by_image(
    image_url="https://example.com/product.jpg",
    market="GB",
    query="a slim fridge freezer with a front water dispenser for a small flat",
)
product = client.get_product(id=result.results[0].id)
```

The dataclass response models are generated from the pinned public API shape and include the source contract hash in the package boundary. The SDK uses Python’s standard library HTTP client, validates markets, UUIDs, API keys, price ranges, hosted HTTPS image URLs, and optional context, bounds timeouts/retries/response size, and never logs credentials, query strings, request bodies, or response bodies. Image-only calls remain supported.
