Get a free key, send one request, and see the names and numbers that never reached the model. Then put Secure AI in front of the model you already use by changing one line.
{
"object": "redaction",
"cleaned_text": "Hi, I am Sylvie Nakashima. Ring me on
(415) 637-6526 or email
ingrid.sinclair@outlook.com",
"entities_found": { "name": 1, "phone": 1, "email": 1 },
"map": {
"Sylvie Nakashima": "Sara Whitfield",
"(415) 637-6526": "07700 900123",
"ingrid.sinclair@outlook.com": "sara@example.com"
},
"redacted": 3
}Sign in and open the developer console, then Create a key. The free plan includes 50,000 requests a month, no card. Copy the key now; it is shown once.
Send any text. What comes back has believable stand-ins in place of the real people and numbers, and a map of which is which, so you can put them back later.
Terminal
curl https://secureai.one/v1/redact \
-H "Authorization: Bearer $SECURE_AI_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Hi, I am Sara Whitfield. Ring me on 07700 900123 or email sara@example.com"}'Redact before your model, restore after it. Your app calls the AI itself, with your own key: Secure AI sees only the text going in, never the answer, and the real values go back on your machine. Keep the map as private as the text.
TypeScript · npm i @secure-ai/guard
import { SecureAI } from "@secure-ai/guard";
const sai = new SecureAI({ apiKey: process.env.SECURE_AI_KEY! });
const { cleaned_text, map } = await sai.redact(userText);
const reply = await yourModel(cleaned_text); // your model, your key
const answer = sai.restoreLocal(reply, map); // on your machinePython · pip install secure-ai-guard
from secure_ai import SecureAI
sai = SecureAI(api_key=os.environ["SECURE_AI_KEY"])
r = sai.redact(user_text)
reply = your_model(r.cleaned_text) # your model, your key
answer = sai.restore(reply, r.map) # on your machineKeep your OpenAI SDK and your own model key. Change the base URL and add one header: every request is hidden on the way out, and the answer comes back with the real details in it.
Python
from openai import OpenAI
# Your Secure AI key, and your own OpenAI key in a header
client = OpenAI(
api_key="sai_...",
base_url="https://secureai.one/v1/proxy",
default_headers={"X-Provider-Key": "sk-..."},
)
reply = client.chat.completions.create(
model="gpt-5.5",
messages=[
{"role": "user", "content": "Draft a reply to Sara Whitfield"},
],
)
# Sara's real name is back in the answer
print(reply.choices[0].message.content)TypeScript
import OpenAI from "openai";
// Your Secure AI key, and your own OpenAI key in a header
const client = new OpenAI({
apiKey: process.env.SECURE_AI_KEY,
baseURL: "https://secureai.one/v1/proxy",
defaultHeaders: {
"X-Provider-Key": process.env.OPENAI_API_KEY!,
},
});
const reply = await client.chat.completions.create({
model: "gpt-5.5",
messages: [
{ role: "user", content: "Draft a reply to Sara Whitfield" },
],
});Not OpenAI?
# Claude, Gemini, Mistral, Grok, DeepSeek, Groq, Azure, Bedrock…
default_headers={"X-Provider": "mistral", "X-Provider-Key": "<your Mistral key>"}Open Home in Secure AI: each call is counted by kind (names, phone numbers, cards) the moment it is made. Only the counts are kept, never the text.
Each one has its own short page or section.
n8n
One credential: our base URL, both keys in the key field.
n8n guide and template →Claude and ChatGPT
Add https://secureai.one/mcp as a connector and sign in.
Connect with MCP →OpenAI Agents SDK, Claude Agent SDK, LangChain
A base URL and a key; tool calls are hidden and restored too.
Agent framework guides →Your agent's own tools
Wrap a tool so an action carrying a card or a password is held or refused.
Guard tools →Use any AI. Stay anonymous.