Ship AI features without shipping card data.
Point your OpenAI and Anthropic apps at one base URL. Card numbers, IBANs and customer IDs never reach the provider.
// one change: baseURL points at your gateway const client = new OpenAI({ baseURL: "https://nymgate.corp.internal/v1", apiKey: process.env.PG_KEY }); const res = await client.responses.create({ model: "gpt-5", input: `Explain why card ⟦CARD:7F31:0001⟧ for ⟦EMAIL:7F31:0002⟧ was declined at merchant ⟦MERCHANT_ID:7F31:0003⟧.`, });
Live in an afternoon
No SDK. No code changes beyond the base URL.
01 · Point
Change the base URL
Your existing OpenAI or Anthropic client.
02 · Key
Use a gateway key
Real provider keys stay in gateway secrets.
03 · Stream
Keep streaming
Deltas and tool calls are restored in flight.
04 · Ship
Ship it
Card data never reaches the provider.
For engineers
Questions engineers ask.
- Does streaming still work?
- Yes. Server-sent events are parsed per protocol and tokens are restored even when split across chunks.
- What about tool calls?
- Arguments are tokenized on the way out and restored as parsed JSON on the way back.
- What about embeddings?
- Not supported yet. Those requests are rejected, never sent raw.
- How much latency does it add?
- About 177 ms at p95 for a 2,000-character prompt in our benchmark.