RemKey

Quickstart

From key to governed traffic in five minutes

RemKey speaks the OpenAI and Anthropic APIs. You change one base URL and one key. No new SDK, no request-header gymnastics, and every call is routed to the right-priced model, screened for secrets and injection, and written to a signed audit trail.

  1. Get a key. Create an account and copy your key from the portal. Keys look like ccr_… and are shown once, so store it like any other secret. Want to try before signing up? The live demo runs with no login.
  2. Swap the base URL. Point your existing client at RemKey and use your ccr_ key as the API key. Nothing else in your code changes.
  3. Send a request. Use "model": "auto" to let the classifier pick the tier per request, or name a specific model from the catalog.

Your first request

cURL

# Same as an OpenAI call. Only the base URL and key change.
curl https://remkey.ai/v1/chat/completions \
  -H "Authorization: Bearer ccr_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "messages": [{"role": "user", "content": "Summarize this ticket in one line."}]
  }'

Python

# pip install openai, then point the official SDK at RemKey.
from openai import OpenAI

client = OpenAI(
    base_url="https://api.openai.com/v1"
    base_url="https://remkey.ai/v1",
    api_key="ccr_your_key_here",
)

resp = client.chat.completions.create(
    model="auto",  # let the classifier pick the tier, or name a specific model
    messages=[{"role": "user", "content": "Summarize this ticket in one line."}],
)
print(resp.choices[0].message.content)

Node / TypeScript

// npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://remkey.ai/v1",
  apiKey: "ccr_your_key_here",
});

const resp = await client.chat.completions.create({
  model: "auto",
  messages: [{ role: "user", content: "Summarize this ticket in one line." }],
});
console.log(resp.choices[0].message.content);

Using the Anthropic API instead

Already on Claude, Claude Code, or the Anthropic SDK? Point the Anthropic base URL at RemKey and keep everything else. RemKey routes and governs Anthropic-shaped traffic the same way.

# Anthropic SDK users: point ANTHROPIC_BASE_URL at RemKey instead.
export ANTHROPIC_BASE_URL=https://remkey.ai
export ANTHROPIC_API_KEY=ccr_your_key_here

# Then your existing Anthropic client, Claude Code, or Cursor works unchanged.

What happens to every request

Classifier routing

An LLM classifier scores each prompt and routes it to the right-priced tier, so the small prompts your team fires all day stop paying premium rates. Set model: "auto" to hand routing to RemKey, or pin a model to opt out.

Guardrails

Every request is screened for PII (email, SSN, phone, card, API keys) and prompt injection before it reaches a provider. Screening is fail-closed: if a check can't run, the request doesn't go out.

Signed audit trail

Each request is recorded in a hash-chained, Ed25519-signed log. Export a tamper-evident bundle your security team can verify offline. It is the record a CISO asks for.

Every response is joined to the ledger

Every response carries x-remkey-event-id, the id of the row it wrote to your tenant's hash chain, and (on non-streaming responses) x-remkey-row-hash, that row's chain-linked hash. Log the header once and you have a join key into the signed audit export without parsing the response body.

Two optional request fields make that ledger row more useful without any required setup:

Requests sampled for downroute verification (the quality-hold check) send the prompt to a judge model in the background. Set x-remkey-no-verify: true on a request to opt it out of sampling entirely, useful for flows where prompt content shouldn't leave the gateway even for a background quality check.

Point a tool at RemKey

Using Cursor, Claude Code, Open WebUI, LangChain, or LiteLLM? Each has a one-line base-URL swap. See the integration guides. Migrating off Portkey or Helicone? The migration guides walk through the switch.

Next: browse the model catalog, manage keys and see spend in your portal, or talk to us about a governed pool for your team.