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 auserfield, 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 Goneon 26 August 2026 and deletes the objects behind it. Ringside is wire-compatible, so everyclient.beta.threads.*call keeps working.file_searchand 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.
- 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 oneGETinstead of a log dig. - Budget caps that stop the bleeding.
PATCH /v1/customers/:id {"monthly_budget_usd": 50}is a hard ceiling. The call that would cross it returns402 customer_budget_exceededinstead of quietly billing you for an agent loop that ran all weekend. - 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.flaggedand the rest, pushed rather than polled. - 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.
- The one-paragraph pitch and the headline code diff.
- What does not change, and how to roll back.
- Why move, tied to specific endpoints rather than adjectives.
- Step-by-step, signup to deploy.
- Drop-in code diffs in Python and Node for the common call shapes.
- Feature mapping from the source API to the Ringside equivalent.
- Gotchas, which is where the guides earn their length.
- 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
- Support: open a ticket. Everything runs through the ticket system, so nothing gets lost in an inbox.
- Migration call: book an hour. We migrate your app live and you keep the working app plus founding-customer pricing.
- Bugs:
github.com/fightclub/ringside-issues.