Leave 32% less personal data exposed than AWS Comprehend, for 79% less
Hide names, account numbers, addresses and customer IDs in chats, tickets and emails before the text reaches an LLM, a log or a vendor. SIE, an open-source inference engine, runs two open models, GLiNER PII and NuNER Zero, behind one API call.
SIE GLiNER PII and NuNER Zero
All personal data maskedTransaction ID: Date: 08/12/2022 Time: 14:36:51 GMT Payer: Name: Customer ID: Payee: Name: Address: Transaction Amount: £150.99
Personal-data detectors leave IDs and names readable
AWS Comprehend
Leaves the employee ID and a name readable| | Employee ID: O4878342 | Sure, Maya. I can see you're our valued customer with the employee ID O4878342. Now, to track your order, I just need your order number. |
OpenAI Privacy Filter
Leaves the customer's name readableSubject: Exclusive Offers Just For You, Hugh! Dear Hugh, We hope this email finds you well. We're excited to bring you some exclusive offers tailored just for you!
- Malwarebytes An AI chat app left 300 million messages from 25 million users in an open database
The researcher claims to have accessed 300 million messages from over 25 million users due to an exposed database.
- Security Magazine 3.7 million records from Sears' AI assistant, names and addresses included, sat open online
Cybersecurity Researcher Jeremiah Fowler discovered three different publicly exposed databases containing 3.7 million records, of which all observed data appeared to belong to Sears Home Service.
Masks more than AWS Comprehend, 22x faster than GPT-6 Luna
- Tested
- 660 synthetic financial documents, 1,792 pieces of personal data
- Scored
- A piece counts when every letter and digit is hidden; punctuation may stay readable
- Prices
- List prices: LLMs 12 Oct, AWS and Privacy Filter's GPU 30 Sep 2026; SIE's Serverless rate
- Timing
- SIE timed on a GPU server with the client alongside; rivals over their public APIs
Send text, get every span to mask
from sie_sdk import SIEClientclient = SIEClient(api_key="sk-sie-…")result = client.extract( "modelsuperlinked/pii-redact", {"text": "text{"date_time": "1978-03-29 17:28:13", "name": "Emma A. Platini", "street_address": "19325 John Motorway, Apt. 488"}
{"date_time": "2022-01-02 14:35:18", "name": "John D. Smith", "street_address": "456 Oakwood Avenue, Unit 3C"}
{"date_time": "2021-12-15 09:19:21", "name": "Alex N. Thompson", "street_address": "334 King's Cross, Flat 15B"}"},)for span in result["entities"]: print(span["label"], span["text"])import { SIEClient } from '@superlinked/sie-sdk';
const client = new SIEClient(undefined, { apiKey: 'sk-sie-…' });
const result = await client.extract(
'superlinked/pii-redact',
{ text: "{\"date_time\": \"1978-03-29 17:28:13\", \"name\": \"Emma A. Platini\", \"street_address\": \"19325 John Motorway, Apt. 488\"}\n{\"date_time\": \"2022-01-02 14:35:18\", \"name\": \"John D. Smith\", \"street_address\": \"456 Oakwood Avenue, Unit 3C\"}\n{\"date_time\": \"2021-12-15 09:19:21\", \"name\": \"Alex N. Thompson\", \"street_address\": \"334 King's Cross, Flat 15B\"}" },
{ labels: [] }, // the model's default types
);
console.log(result.entities);curl https://api.superlinked.com/v1/extract/superlinked%2Fpii-redact \
-H "Authorization: Bearer sk-sie-…" \
-H "Content-Type: application/json" \
-d "{\"items\":[{\"text\":\"{\\\"date_time\\\": \\\"1978-03-29 17:28:13\\\", \\\"name\\\": \\\"Emma A. Platini\\\", \\\"street_address\\\": \\\"19325 John Motorway, Apt. 488\\\"}\\n{\\\"date_time\\\": \\\"2022-01-02 14:35:18\\\", \\\"name\\\": \\\"John D. Smith\\\", \\\"street_address\\\": \\\"456 Oakwood Avenue, Unit 3C\\\"}\\n{\\\"date_time\\\": \\\"2021-12-15 09:19:21\\\", \\\"name\\\": \\\"Alex N. Thompson\\\", \\\"street_address\\\": \\\"334 King's Cross, Flat 15B\\\"}\"}]}"Build the "Find personal data to mask" capability into my app using the Superlinked Inference Engine (SIE).
Context
- SIE is an OpenAI-style inference API. Python SDK: `from sie_sdk import SIEClient`; TypeScript: `@superlinked/sie-sdk`.
- Base URL: https://api.superlinked.com (or my regional endpoint). Auth: Bearer key from env `SIE_API_KEY` (never hard-code it).
- Model: superlinked/pii-redact (SIE primitive: /extract). Keep the model id configurable.
Task
- Input: a block of text.
- Behaviour: return the spans of personal data found, each with its type and character offsets; my code masks them.
- Call the selected SIE primitive once per request and map the response into your domain type.
Deliverables
- A typed client wrapper, an application-level function for this task, error handling for timeouts/empty input, and unit tests with a stubbed client.
- Wire it into my existing stack (ask me which framework if unclear) and add a short usage example.entities · 6start–end
- person Emma A. Platini
46–61 - street address 19325 John Motorway, Apt. 488
83–112 - person John D. Smith
161–174 - street address 456 Oakwood Avenue, Unit 3C
196–223 - person Alex N. Thompson
272–288 - street address 334 King's Cross, Flat 15B
310–336
masked · 6
{"date_time": "1978-03-29 17:28:13", "name": "", "street_address": ""}
{"date_time": "2022-01-02 14:35:18", "name": "", "street_address": ""}
{"date_time": "2021-12-15 09:19:21", "name": "", "street_address": ""} Mask personal data for 79% less than AWS Comprehend
Serverless API
We host the models; you call one API.
- No idle GPUs, pay for what you use
- SOC 2 Type 2, US or EU data residency
- $50 of credit to start, no card required
Self-hosted (Kubernetes)
SIE in your clusters, backed by our engineers.
- Data stays in your own cloud account
- Same models and API as Serverless
- Terraform to your cloud in minutes
Run locally
The open-source server on your own machine.
docker run --gpus all -p 8080:8080 ghcr.io/superlinked/sie-server:latest-cuda12-default