Skip to content

Getting started

Switch in one minute

Already on OpenAI, Anthropic or OpenRouter? Change three things (the base URL, the key and the model ID) and the rest of your code stays as it is.

From OpenAI#

-client = OpenAI()+client = OpenAI(base_url="https://fullsendai.com/v1", api_key=os.environ["FULLSEND_API_KEY"])-reply = client.chat.completions.create(model="gpt-…", messages=messages)+reply = client.chat.completions.create(model="deepseek-v4.1-flash", messages=messages)
  • Chat Completions, streaming, tools, images, response_format and reasoning_effort carry over.
  • The Responses, Assistants, Batch, Embeddings, Images and Audio endpoints don't. Code on client.responses needs to move to client.chat.completions.

From Anthropic#

-client = anthropic.Anthropic()+client = anthropic.Anthropic(base_url="https://fullsendai.com", api_key=os.environ["FULLSEND_API_KEY"])-message = client.messages.create(model="claude-…", max_tokens=1024, messages=messages)+message = client.messages.create(model="deepseek-v4.1-flash", max_tokens=1024, messages=messages)
  • Messages, streaming, custom tools and images carry over.
  • Extended thinking, prompt caching discounts, PDF blocks, server tools and batches don't; see What's different.

From OpenRouter#

Python
-client = OpenAI(base_url="https://openrouter.ai/api/v1", api_key=os.environ["OPENROUTER_API_KEY"])+client = OpenAI(base_url="https://fullsendai.com/v1", api_key=os.environ["FULLSEND_API_KEY"])-model="deepseek/deepseek-…"+model="deepseek-v4.1-flash"
  • Model IDs have no vendor prefix: deepseek-v4.1-flash, not vendor/model. The full list is on Models.
  • OpenRouter-only fields (models fallback lists, provider routing, transforms) and its HTTP-Referer and X-Title headers aren't needed; remove them. Failing over to a backup host happens on our side.
  • The same key works on the Anthropic API too, for tools like Claude Code.

After you switch#

CheckWhy
Model IDs in config, not codeSo you can try another model, or move off a retired one, without a deploy.
A spend cap on the new keyA loop stops at the cap, not at your balance. Per-key limits
Your retry logicThe error codes differ from your old provider's. Which errors to retry
Rate limitsPer key per model, and per account. Rate limits
Logs after the first callsEvery call shows in Logs with its tokens, cost and any error.

Stuck? Email [email protected]System statusChangelog