ShinrAIHosted on STACKIT

Build with ShinrAI

Protect personal data without losing useful context.

Start with a real request, follow a production recipe, or inspect every supported customer endpoint.

Choose your API

One service and the same models serve every contract. Pick the contract that fits your code.

Drop-in compatibility

Keep your SDK and your request format. Each vendor API has its own endpoint: change only the endpoint and use your ShinrAI key.

APIEndpoint: change only thisAlternative on the API host
Azure AI Language PIIhttps://azure.api.getshinrai.comhttps://api.getshinrai.com/v1/azure
Google Cloud DLPhttps://google.api.getshinrai.comhttps://api.getshinrai.com/v1/google
AWS Comprehendhttps://aws.api.getshinrai.comhttps://api.getshinrai.com/v1/aws
  • Azure clients send the ShinrAI key as the subscription key.
  • Google clients send it as the API key or as a Bearer token.
  • AWS clients sign with SigV4 credentials that you create with the ShinrAI key.

Each vendor endpoint serves its own OpenAPI document at /openapi.json. The sandbox uses the same names with api-sbx.

Compatibility APIs are for migration

The vendor contract limits what ShinrAI can return: types, confidence, media, sessions and jobs. Results can therefore be weaker than ShinrAI can deliver. For full quality, use the native PII API v2.

Native API v2 guide →

Native API v1

Existing v1 integrations keep working; new work uses the native API v2.

Every contract is published as OpenAPI 3.1. You need no SDK: any HTTP client works.

Native API v2 in 60 seconds

Set your key once. Every example sends it as a Bearer token.

export SHINRAI_API_KEY=shr_live_...

Find personal data in a text

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" -d '{"text": "Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00"}'

Send a text file as it is and get the protected text back

curl -s "https://api.getshinrai.com/v2/protect?preset=label" -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: text/plain" -H "Accept: text/plain" --data-binary @letter.txt

Get the redacted screenshot back

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: image/png" -H "Accept: image/png" --data-binary @screenshot.png -o redacted.png

Start a job for a large batch

Upload a JSONL file with one input per line first. The upload answer contains the ID for the job.

curl -s https://api.getshinrai.com/v2/jobs \
  -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: rows-2026-09-28" \
  -d '{"kind": "text_batch",
       "inputs": [{"kind": "file", "source": {"upload": "up_..."}}],
       "output": {"artifacts": ["protected", "entities"]}}'

Choose where to start

Open-source local playground

Run Hello ShinrAI locally

Try and debug the full protection flow in a browser workspace. Bring a ShinrAI key for text, files, scans and compatibility APIs; add an LLM key only when you want protected chat.

Install uv once, then launch the reviewed release:

uvx --from https://github.com/Innovius-ai/hello-shinrai/releases/download/v0.1.4/hello_shinrai-0.1.4-py3-none-any.whl hello-shinrai

Use the Text, Files, Chat, Azure Comparison and API Explorer workspaces. Keys remain in the local process unless you explicitly save them in your operating system credential store.

Verified release: v0.1.4. Upgrade by changing both version values in the wheel URL.

API reference

Run requests against the actual API

The explorer is served by the ShinrAI gateway and built from its registered customer routes. Its scripts and styles are hosted with the backend.

Open Swagger