Skip to Content
MigrationsMigrate from Helicone to Curate-Me

Migrate from Helicone

Helicone was acquired by Mintlify in March 2026. The platform is now in maintenance mode — security patches, new model support, and bug fixes, but no new governance features. If you need an actively developed gateway with PII scanning, HITL approvals, and managed runners, this guide covers the move.

Migration time: 10–20 minutes. Helicone and Curate-Me use the same “swap the base URL” pattern, so the change is almost identical.

Environment variable mapping

Helicone env varCurate-Me equivalentNotes
HELICONE_API_KEYCM_API_KEY (cm_sk_...)Same role; different format
Helicone base URL (https://oai.helicone.ai/v1)https://api.curate-me.ai/v1/openaiPer-provider path
Helicone-Auth headerX-CM-API-Key headerSame position; different header name
Helicone-User-IdX-CM-User-IdOptional per-request user attribution
Helicone-Property-* headersX-CM-Tag-* custom tagsRoadmap; not available yet
Helicone-Cache-EnabledResponse caching is on the CM roadmap

Before / after code diff

from openai import OpenAI client = OpenAI( - base_url="https://oai.helicone.ai/v1", - default_headers={ - "Helicone-Auth": f"Bearer {HELICONE_API_KEY}", - }, + base_url="https://api.curate-me.ai/v1/openai", + api_key="cm_sk_your_gateway_key", ) response = client.chat.completions.create( model="gpt-4o", messages=[{"role": "user", "content": "Hello"}], ) print(response.choices[0].message.content)

For Anthropic (Helicone’s https://anthropic.helicone.ai → CM):

import anthropic client = anthropic.Anthropic( - base_url="https://anthropic.helicone.ai", - default_headers={ - "Helicone-Auth": f"Bearer {HELICONE_API_KEY}", - }, + base_url="https://api.curate-me.ai/v1/anthropic", + api_key="cm_sk_your_gateway_key", )

Step-by-step migration

Create a Curate-Me account and get your gateway key

Sign up at dashboard.curate-me.ai/signup . Go to Settings → API Keys → New Key. Copy the cm_sk_... value.

Store your provider secrets

Curate-Me injects your upstream API keys automatically once they’re stored:

# OpenAI curl -X POST https://api.curate-me.ai/v1/admin/secrets \ -H "X-CM-API-Key: cm_sk_your_gateway_key" \ -H "Content-Type: application/json" \ -d '{"provider": "openai", "secret": "sk-your-openai-key"}' # Anthropic curl -X POST https://api.curate-me.ai/v1/admin/secrets \ -H "X-CM-API-Key: cm_sk_your_gateway_key" \ -H "Content-Type: application/json" \ -d '{"provider": "anthropic", "secret": "sk-ant-your-key"}'

Set a daily budget

curl -X POST https://api.curate-me.ai/v1/admin/budgets \ -H "X-CM-API-Key: cm_sk_your_gateway_key" \ -H "Content-Type: application/json" \ -d '{"daily_limit_usd": 30.0, "scope": "org"}'

Update your environment variables

unset HELICONE_API_KEY export CM_API_KEY=cm_sk_your_gateway_key # OpenAI SDK export OPENAI_BASE_URL=https://api.curate-me.ai/v1/openai export OPENAI_API_KEY=cm_sk_your_gateway_key # Anthropic SDK export ANTHROPIC_BASE_URL=https://api.curate-me.ai/v1/anthropic

Verify your first request

curl https://api.curate-me.ai/v1/openai/chat/completions \ -H "X-CM-API-Key: $CM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"gpt-4o","messages":[{"role":"user","content":"Migration test"}]}'

Confirm the trace appears in Dashboard → Traces within a few seconds.

Helicone feature equivalents

Helicone featureCurate-Me equivalent
Request loggingTraces dashboard (full request/response with cost)
User tracking (Helicone-User-Id)X-CM-User-Id header (partial — dashboard grouping roadmap)
Custom properties (Helicone-Property-*)Tag system (roadmap)
Prompt managementNot available
Experiments / A/B testingNot available
Rate limitingIETF-standard RateLimit-* headers per key/org
Moderation / safetyPII scanning + content safety built-in (no add-on needed)
Semantic cachingRoadmap
Cost trackingPer-request, per-key, per-org hierarchies
Webhook on requestRoadmap
DatasetsNot available

Helicone data export before migration

If you want to preserve historical data from Helicone, export it before cancelling:

  1. Helicone Dashboard → Requests → Export
  2. Choose CSV or JSON format
  3. Store in your own data warehouse (Helicone exports in OpenAI request format)

Curate-Me’s traces API does not currently import external data — this is archive-only.

Rollback

export HELICONE_API_KEY=your-old-key export OPENAI_BASE_URL=https://oai.helicone.ai/v1 # Restore default headers in code: # "Helicone-Auth": f"Bearer {HELICONE_API_KEY}" unset CM_API_KEY