Ringside · Migrations

Ringside migration library

Step-by-step migrations from OpenAI Chat, OpenAI Assistants, Anthropic, OpenRouter and Chatbase to Ringside. What changes, what doesn't, and how to roll back.

Ringside migration library

Nearly every migration on this page is the same two lines. Point the SDK at https://api.fightclub.pro/v1, swap the key, keep everything else. The guides are long because the second half of a migration is the part nobody writes down: what breaks, what the error codes mean, and how you get back if you change your mind.

Start here

  • OpenAI Chat Completions. Three-line diff. Swap base_url, add a user field, get per-end-customer attribution, budgets, webhooks and 19 providers behind the SDK you already use.
  • OpenAI Assistants. The flagship, and the urgent one. OpenAI's Assistants API returns 410 Gone on 26 August 2026 and deletes the objects behind it. Ringside is wire-compatible, so every client.beta.threads.* call keeps working. file_search and vector stores are shipped here, so retrieval survives the move.
  • Anthropic Messages. Claude behind the OpenAI SDK, with 18 other providers beside it, per-Customer billing and one error taxonomy instead of one per vendor.
  • OpenRouter. Near-passthrough wire compatibility. OpenRouter sells you tokens. The thing you get here that you cannot get there is the Customer: attribution, budgets and Client Tokens on the primitive rather than in your database.
  • Chatbase. For when the no-code bot has outgrown its dashboard and you need the prompt in git, the RAG under your control and a real SDK underneath.

What you actually gain

Four things, none of which exist in the APIs above, all of which people end up building themselves.

  1. The Customer object. Every call tags to an end-customer via user: "cus_...". Per-Customer usage, budgets, rate limits and margin are tracked server-side, with no schema on your end. When a customer disputes an invoice you answer it with one GET instead of a log dig.
  2. Budget caps that stop the bleeding. PATCH /v1/customers/:id {"monthly_budget_usd": 50} is a hard ceiling. The call that would cross it returns 402 customer_budget_exceeded instead of quietly billing you for an agent loop that ran all weekend.
  3. Webhooks. 34 registered event types, HMAC-signed, retried on a fixed schedule of 1m, 5m, 30m, 2h then 6h. customer.budget_exceeded, wallet.low, run.completed, moderation.flagged and the rest, pushed rather than polled.
  4. 19 providers, one URL. OpenAI, Anthropic, Google, Mistral, Groq, Together, Fireworks, Perplexity, DeepSeek, xAI, Cerebras, SambaNova, Cohere, OpenRouter, Ollama, Azure OpenAI, Bedrock, HuggingFace and Replicate. Change the model ref, not the SDK. Or change a slot: alias server-side and change nothing at all.

Alongside those: managed RAG with vector stores and file_search, the Batch API at half the sync rate, margin reporting, conversation persistence, canonical streaming and error shapes across every provider, JSON-schema enforcement on providers that lack it natively, and GDPR hard-delete.

How risky is this, really

The cutover is small and the anxiety is large, so here is the anxiety part first.

Chat Completions is stateless, so there is nothing to migrate. Your first call creates the Customer and every call after it attaches. Rollback is pointing base_url back at your old provider, which is one line in one file, and nothing on our side takes your data hostage while you decide. You can run both clients side by side and send a slice of traffic through Ringside for a week before you commit. The response shape, the streaming chunk shape and the SDK exception classes are all ones you already handle.

The Assistants migration is the one with real state behind it, and even there the work is a backfill script rather than a rewrite. That guide includes one.

Guide shape

Every guide follows the same skeleton, so you can skip to the part you need.

  1. The one-paragraph pitch and the headline code diff.
  2. What does not change, and how to roll back.
  3. Why move, tied to specific endpoints rather than adjectives.
  4. Step-by-step, signup to deploy.
  5. Drop-in code diffs in Python and Node for the common call shapes.
  6. Feature mapping from the source API to the Ringside equivalent.
  7. Gotchas, which is where the guides earn their length.
  8. FAQ and next steps.

Not listed here?

Open an issue at github.com/fightclub/ringside-issues or a support ticket naming the API you are coming from. We write guides on request, and if you are asking then others are too.

On the roadmap (v1.1): LangChain and LangGraph, LiteLLM, Portkey, Langflow (DataStax sunset April 9, 2026) and a Vercel AI SDK configuration doc, which is a setup guide rather than a migration.

Support