Metadata-Version: 2.4
Name: kiprio
Version: 0.1.0
Summary: Python SDK for kiprio.com — email validation, DNS, OCR, QR, translation, sentiment, screenshot, and 30+ more APIs.
Project-URL: Homepage, https://kiprio.com
Project-URL: Documentation, https://kiprio.com/docs
Project-URL: Source, https://github.com/ForeverTools/kiprio-python
Project-URL: Bug Tracker, https://github.com/ForeverTools/kiprio-python/issues
Author-email: Kiprio <support@kiprio.com>
License: MIT
License-File: LICENSE
Keywords: api,dns,email-validation,grammar,hash,iban,ip,jwt,kiprio,ocr,qr-code,screenshot,sdk,sentiment,ssl,summarize,translation,uuid,vat,whois
Classifier: Development Status :: 4 - Beta
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
Classifier: Typing :: Typed
Requires-Python: >=3.9
Requires-Dist: httpx<2.0,>=0.24
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.21; extra == 'dev'
Requires-Dist: pytest>=7; extra == 'dev'
Requires-Dist: respx>=0.20; extra == 'dev'
Description-Content-Type: text/markdown

# kiprio

Python SDK for [kiprio.com](https://kiprio.com) — 30+ utility APIs for developers: email validation, DNS, OCR, QR codes, translation, sentiment analysis, screenshots, and more.

## Install

```bash
pip install kiprio
```

## Quick start

```python
import kiprio

client = kiprio.Client(api_key="kip_your_key_here")
# Or set KIPRIO_API_KEY environment variable

# Email validation
print(client.email_validate("user@example.com"))

# DNS lookup
print(client.dns_lookup("example.com", "MX"))

# OCR from URL
print(client.ocr("https://example.com/image.png"))

# QR code generation
result = client.qr("https://kiprio.com")
# result["image"] contains base64-encoded PNG

# Translation
print(client.translate("Hello world", "es"))
```

## Async usage

```python
import kiprio, asyncio

async def main():
    async with kiprio.AsyncClient(api_key="kip_...") as client:
        result = await client.email_validate("user@example.com")
        print(result)

asyncio.run(main())
```

## Available methods

| Method | Endpoint | Description |
|--------|----------|-------------|
| `email_validate(email)` | POST /v1/email-validate | MX + SMTP deliverability check |
| `dns_lookup(domain, type)` | GET /v1/dns-lookup | DNS record lookup |
| `whois(domain)` | POST /v1/whois | WHOIS registration data |
| `ssl_check(domain)` | POST /v1/ssl-check | SSL certificate validity |
| `ip_lookup(ip)` | POST /v1/ip-lookup | IP geolocation + threat score |
| `screenshot(url)` | POST /v1/screenshot | Web page screenshot (PNG) |
| `ocr(url)` | POST /v1/ocr | Image text extraction |
| `qr(data)` | POST /v1/qr | QR code generation |
| `hash_hex(text, algo)` | POST /v1/hash/hex | Hash to hex digest |
| `hash_base64(text, algo)` | POST /v1/hash/base64 | Hash to base64 digest |
| `uuid(version, count)` | GET /v1/uuid | UUID generation |
| `translate(text, target)` | POST /v1/translate | Text translation |
| `detect_language(text)` | POST /v1/translate/detect | Language detection |
| `sentiment(text)` | POST /v1/sentiment | Sentiment analysis |
| `grammar(text)` | POST /v1/text | Grammar and style check |
| `summarize(text)` | POST /v1/summarize | Text summarisation |
| `tldr(url)` | POST /v1/tldr | URL to 3-sentence summary |
| `moderation(text)` | POST /v1/moderation | Content moderation |
| `readability(url)` | POST /v1/readability | Clean article extraction |
| `iban(iban)` | POST /v1/iban | IBAN validation |
| `vat(vat_number)` | POST /v1/vat | EU VAT validation |
| `phone(number)` | POST /v1/phonenumber | Phone number validation |
| `cron_parse(expr)` | POST /v1/cron-parse | Cron expression parser |
| `jwt_decode(token)` | POST /v1/jwt/decode | JWT decode |
| `jwt_sign(payload, secret)` | POST /v1/jwt/sign | JWT sign |
| `jwt_verify(token, secret)` | POST /v1/jwt/verify | JWT verify |
| `html_to_pdf(html)` | POST /v1/html-to-pdf | HTML to PDF conversion |
| `markdown(text)` | POST /v1/markdown | Markdown to HTML |
| `html_to_markdown(html)` | POST /v1/html-to-markdown | HTML to Markdown |
| `favicon(url)` | POST /v1/favicon | Favicon extraction |
| `geocode(address)` | GET /v1/geocode/forward | Forward geocoding |
| `reverse_geocode(lat, lon)` | GET /v1/geocode/reverse | Reverse geocoding |
| `carbon(url)` | POST /v1/carbon | Website carbon footprint |
| `diff(original, modified)` | POST /v1/diff | Text diff |
| `redact(text)` | POST /v1/redact | PII redaction |
| `tech_stack(url)` | POST /v1/tech-stack | Technology detection |
| `tts(text)` | POST /v1/tts | Text to speech |
| `ai_detect(text)` | POST /v1/ai-detect | AI content detection |
| `fx(from, to, amount)` | GET /v1/fx | Currency conversion |
| `mock(schema)` | POST /v1/mock | Mock data generation |

## Error handling

```python
import kiprio

try:
    client.email_validate("bad")
except kiprio.ValidationError as e:
    print(f"Bad input: {e}")
except kiprio.RateLimitError as e:
    print(f"Rate limited, retry after {e.retry_after}s")
except kiprio.AuthError:
    print("Check your API key")
except kiprio.KiprioError as e:
    print(f"API error {e.status_code}: {e}")
```

## Get a free API key

[kiprio.com/signup](https://kiprio.com/signup) — free tier, no credit card required.
