Metadata-Version: 2.4
Name: veritify
Version: 0.1.0
Summary: Official Python SDK for the Veritify API — verifiable signal integrity and novelty detection for data streams.
Project-URL: Homepage, https://github.com/PantaleonSystems/veritify-python
Project-URL: Documentation, https://github.com/PantaleonSystems/veritify-python/blob/main/docs/getting-started.md
Project-URL: Changelog, https://github.com/PantaleonSystems/veritify-python/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/PantaleonSystems/veritify-python/issues
Author: Pantaleon Systems
License-Expression: MIT
License-File: LICENSE
Keywords: anomaly-detection,api,data-integrity,novelty-detection,sdk,veritify
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Requires-Dist: requests>=2.31
Provides-Extra: dev
Requires-Dist: pytest>=7.4; extra == 'dev'
Requires-Dist: python-dotenv>=1.0; extra == 'dev'
Requires-Dist: responses>=0.24; extra == 'dev'
Description-Content-Type: text/markdown

# Veritify

[![Tests](https://github.com/PantaleonSystems/veritify-python/actions/workflows/test.yml/badge.svg)](https://github.com/PantaleonSystems/veritify-python/actions/workflows/test.yml)
[![PyPI version](https://img.shields.io/pypi/v/veritify.svg)](https://pypi.org/project/veritify/)
[![Python versions](https://img.shields.io/pypi/pyversions/veritify.svg)](https://pypi.org/project/veritify/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/PantaleonSystems/veritify-python/blob/main/LICENSE)

**Official Python SDK for Veritify** — measure the integrity, novelty, and
authenticity of data, with a cryptographically verifiable proof behind every
result.

[Getting Started](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/getting-started.md) ·
[API Reference](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/api-reference.md) ·
[Errors](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/errors.md) ·
[PyPI](https://pypi.org/project/veritify/) ·
[Issues](https://github.com/PantaleonSystems/veritify-python/issues)

---

## Features

- 🔍 **Novelty detection** — measure how much new information a piece of data contributes, not just whether it "looks like" something seen before
- 🔐 **Cryptographic receipts** — every result ships a hash anyone can independently verify, publicly, without trusting us or holding an API key
- 🧩 **Multi-modal** — audio, text, and documents today, through the same call
- ⚡ **Simple API** — one client, four core methods: `signup`, `mine`, `verify`, `stats`
- 🔑 **Self-service API keys** — get one in one call, no approval wait

## Installation

```bash
pip install veritify
```

Requires Python 3.9+. The only runtime dependency is [`requests`](https://pypi.org/project/requests/).

## Quickstart

```python
from veritify import VeritifyClient

client = VeritifyClient(base_url="https://veritify-api-production.up.railway.app")

result = client.mine("recording.wav")
print(result.is_novel, result.delta_s, result.receipt_hash)

# Anyone can independently verify the receipt later — no trust required:
verification = client.verify(result.receipt_hash)
print(verification.known, verification.mined_at)
```

You can also set `VERITIFY_BASE_URL` and `VERITIFY_API_KEY` as environment
variables instead of passing them explicitly — copy `.env.example` to `.env`
and fill it in (`.env` is gitignored; never commit real values).

## Getting your API key

No signup form, no approval queue — one call, and you have a working key:

```python
from veritify import VeritifyClient

with VeritifyClient(base_url="https://veritify-api-production.up.railway.app") as client:
    result = client.signup("you@example.com")
    print(result.api_key)  # shown ONCE — save it now
```

Or run the ready-made example: `python examples/signup.py you@example.com`.
Full walkthrough, including the `curl` equivalent: [Getting Started](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/getting-started.md).

## Documentation

- **[Getting Started](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/getting-started.md)** — install, get a key, configure, first call
- **[API Reference](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/api-reference.md)** — every method, every field, in detail
- **[Errors](https://github.com/PantaleonSystems/veritify-python/blob/main/docs/errors.md)** — every status code the API can return, and how to handle each

More runnable examples live in [`examples/`](https://github.com/PantaleonSystems/veritify-python/tree/main/examples):
a dual query (`question=` comparing data against a query), and full
error-handling coverage.

## Status

Veritify is under active development. The SDK's contract (`signup`, `mine`,
`verify`, `health`, `stats`) mirrors the API as it exists today, live at
`https://veritify-api-production.up.railway.app`. This may move to a custom
domain later — we'll announce it here if so.

## Development

```bash
git clone https://github.com/PantaleonSystems/veritify-python.git
cd veritify-python
pip install -e ".[dev]"
pytest
```

## License

MIT — see [LICENSE](https://github.com/PantaleonSystems/veritify-python/blob/main/LICENSE).
