A FAMILIAR API. A NEW CONNECTION.

Keep your client.
Make the switch.

Connect your text or tool workflow to Flonno. Change your base URL, key and model. Start small and compare the results.

Python & Node.jsChat CompletionsScoped API keys
THREE SMALL CHANGES

From your key to your first response.

For existing OpenAI or OpenRouter Chat Completions clients.

01

Create a scoped key

Create an account, then a key with chat:completions and your chosen model. Add models:read if your client lists models.

02

Update the connection

Replace the provider base URL and key. Select qwen3.8-27b, deepseek-v4.1-flash or kimi-k3. Store the secret server-side.

OpenAI clients normally use api.openai.com/v1; OpenRouter clients use openrouter.ai/api/v1. Replace that connection with Flonno and use a separate Flonno key.

YOUR FIRST REQUEST

Pick your language.
Keep the setup small.

Use the OpenAI SDK with a supported Flonno model. Set FLONNO_API_KEY in your server environment before running the example.

Generation requires prepaid credit. Want help with the first test? Explore the reviewed pilot →

What is supported?

This guide covers POST /v1/chat/completions and GET /v1/models. Responses API, embeddings, image/audio input, multiple completions and provider-specific routing options are outside this guide. Remove provider routing fields and check request documentation.

What should I test before switching?

Use the same tasks to compare quality, latency and wallet charges. Test streaming and tool calls separately if used. Validate tool arguments before executing them. Roll back the base URL, model and credential together if needed.

What do error responses mean?

400: request fields or model. 401: key. 402: insufficient credit. 403: scopes, model/IP access or payment hold. 429: quota; respect Retry-After. Avoid automatic retries during evaluation.

Install pip install openai · keep your key server-side

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["FLONNO_API_KEY"],
    base_url="https://www.flonno.com/v1",
    timeout=60.0,
    max_retries=0,
)
response = client.chat.completions.create(
    model="qwen3.8-27b",
    messages=[{"role": "user", "content": "Reply with a short greeting."}],
    max_tokens=128,
)
print(response.choices[0].message.content)

One small, billable request · 128-token output cap · automatic retries off

A LITTLE HELP WITH THE SWITCH

Your workflow.
A direct conversation.

Write down what you are moving, right here. Open the prepared email and send it to Jonas from your own mail app.

No account needed to ask. For hands-on evaluation, the seven-day pilot includes setup assistance and up to $5 of reviewed test credit.

SDK examples were checked against a local synthetic endpoint, not a live quality benchmark. Current inference is external. Read privacy before using customer data.

n8n, Postman and LiteLLM guides
TALK TO JONAS

What are you moving?

A few lines are enough. Tell us about the task and the tool you use.

Open email draft

Opens your mail app with a draft to jonas@flonno.com. You review and send it there. No mail app? Copy your message into webmail. Please leave out secrets and customer data.