We are currently building something exciting and will be launching soon. Registration is temporarily closed. Launching soon — registration temporarily closed.

SDKs — Preview

SDKs for Python, JavaScript, Go, and PHP (preview)

Go from API key to your first Sentiqra analysis with client libraries for the languages your team already uses.

SDK status: in development

These packages are not yet published to PyPI, npm, a Go module, or Packagist - the code samples below are previews of the planned client API. The package names shown are planned namespaces, not reserved or installable - they will only become install instructions once published under verified publisher accounts. Everything on this page already works today over plain HTTP: POST https://sentiqra.tech/v1/analyze with your API key. The quickstart has copy-paste curl examples. Want early access to a specific language SDK? Tell us.

One API, 12 production analyzers, structured signals. Same client library across all products.

Python · JavaScript · Go · PHP · REST

Choose your SDK

PY

Python Coming soon

sentiqra

Planned PyPI package

sentiqra - not yet published. Use the REST API today; the quickstart has working examples.

Requirements

Python 3.x+

Built for

  • Sync and async Python applications
  • Typed detection results
  • Automatic retry support
  • All 12 production analyzers

Works today - REST example

curl -X POST https://sentiqra.tech/v1/analyze \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "you are a worthless idiot",
    "language": "en",
    "analyzers": [
        "trust-safety"
    ]
}'

Planned SDK usage (preview - package not yet published)

import os
from sentiqra import Sentiqra

client = Sentiqra(
    api_key=os.environ["SENTIQRA_API_KEY"]
)

result = client.analyze(
    text="you are a worthless idiot",
    language="en",
    analyzers=["trust-safety"],
)

for signal in result.signals:
    print(f"{signal.analyzer}: {signal.label} ({signal.score})")
print(result.verification["configuration"])

Keep API keys server-side and out of source control.

Running a specific analyzer?

All analyzers are available through the same POST /v1/analyze endpoint. The analyzers parameter is required - pass one or two explicit analyzer identifiers to select which run.

Trust & Safety - 210 detection labels across 16 languages.

curl -X POST https://sentiqra.tech/v1/analyze \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "you are a worthless idiot", "language": "en", "analyzers": ["trust-safety"]}'

# signals[] include code/label/score;# insults_derogation: 0.86
# insult: 0.99
# belittling: 0.99
# verification.configuration: sqcfg_ZZW77NM9

Each signal includes analyzer, code, label, score, and level (category or label).

Predictable results across languages and SDKs

The planned SDKs will wrap the same deterministic API. Every successful analysis response includes structured fields:

AnalyzeResult
├─ language              Response language (e.g. "en")
├─ signals[]             Array of detected signals
│  ├─ analyzer           Analyzer ID (e.g. "trust-safety")
│  ├─ code               Stable machine identifier
│  ├─ label              Human-readable label
│  ├─ score              Signal-match score (0.0–1.0)
│  ├─ level              "category" or "label"
│  └─ parent             Parent category code (for label-level signals)
├─ meta                  Execution metadata per analyzer (incl. partial flag)
├─ usage                 Billing info (analyzer_runs, billed)
├─ verification          Immutable receipt
│  ├─ configuration      Pinned configuration ID
│  ├─ fingerprint        Content hash (fp2_…)
│  └─ signature          Ed25519 signature (sig_ed25519_…)
└─ idempotent_replay     true when the response is an unbilled deterministic recomputation

The SDK will handle transport. Today the REST API returns the same structured signals directly.

Receipt verification ships separately

Verifying a receipt does not require the analyzer SDK - it is a small standalone operation. Today you can verify with POST https://sentiqra.tech/v1/verify, offline with the public key from GET /v1/verify/public-key, or in the browser with the standalone verifier and its published test vectors.

A dedicated receipt-verification package is planned as its own release - separate from the detection SDKs - before the client libraries ship. It will only be listed here once published under a verified publisher account.

Production-ready client behavior

Authentication

Load secret API keys from environment variables or your preferred secrets manager.

Retries

The API supports Idempotency-Key on every POST, so retries never double-bill. The planned SDKs will add automatic retry with exponential backoff.

Timeouts

Configure request behavior for your production latency requirements.

Errors

Handle authentication, validation, rate-limit, and API errors through the documented error schema - the SDK will expose typed errors.

No SDK for your language?

Sentiqra is a REST API. Use any HTTP client that can send HTTPS requests and parse JSON.

curl -X POST https://sentiqra.tech/v1/analyze \
  -H "Authorization: Bearer $SENTIQRA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "you are a worthless idiot",
    "language": "en",
    "analyzers": [
        "trust-safety"
    ]
}'

Ready to build?

Create a free API key and make your first request.

5,000 analyzer runs/month free · No card required