Claude, GPT and Gemini
The current chat models of Anthropic, OpenAI and Google are FlyMy.AI models,
each with its own endpoint id, such as flymyai/claude-haiku-5-5. Call them with
your FlyMy.AI key: every call is billed per token from your FlyMy.AI balance, at
the prices on the model's page, on the tokens the maker reports.
There are three ways to call one:
- The FlyMy.AI API -
promptormessages, the same inputs and outputs for every model; from an assistant,run_modelon the Agents MCP. - The OpenAI-compatible API - Chat Completions under the model's address.
- The maker's own API under the model's address - OpenAI Responses,
Anthropic Messages or Google
generateContent. The official SDKs work with only the base URL and the key changed.
On 2 and 3 your request reaches the maker as you send it: function tools, structured output, prompt caching and streaming work as the maker documents them, and FlyMy.AI stores neither the prompt nor the answer.
Models
| Model | Endpoint id | Maker's API | Maker's model id |
|---|---|---|---|
| Claude Fable 5.2 | flymyai/claude-fable-5-2 | Anthropic Messages | claude-fable-5-2 |
| Claude Opus 5.5 | flymyai/claude-opus-5-5 | Anthropic Messages | claude-opus-5-5 |
| Claude Sonnet 5.5 | flymyai/claude-sonnet-5-5 | Anthropic Messages | claude-sonnet-5-5 |
| Claude Haiku 5.5 | flymyai/claude-haiku-5-5 | Anthropic Messages | claude-haiku-5-5 |
| GPT-6 Astra | flymyai/gpt-6-astra | OpenAI Responses | gpt-6-astra |
| GPT-6.1 Sol | flymyai/gpt-6_1-sol | OpenAI Responses | gpt-6.1-sol |
| GPT-6.1 Terra | flymyai/gpt-6_1-terra | OpenAI Responses | gpt-6.1-terra |
| GPT-6 Luna | flymyai/gpt-6-luna | OpenAI Responses | gpt-6-luna |
| Gemini 4 Carbon | flymyai/gemini-4-carbon | Google generateContent | gemini-4-carbon |
| Gemini 4 Argon | flymyai/gemini-4-argon | Google generateContent | gemini-4-argon |
| Gemini 3.8 Flash | flymyai/gemini-3_8-flash | Google generateContent | gemini-3.8-flash |
| Gemini 3.5 Flash-Lite | flymyai/gemini-3_5-flash-lite | Google generateContent | gemini-3.5-flash-lite |
The model page, https://app.flymy.ai/models/<endpoint id>, lists its prices,
reasoning efforts, context window and longest answer. The endpoint id has no dots;
the maker's model id is what the maker's SDK expects in model (the address picks
the model, so a different model value does not switch it).
Addresses and keys
A model's address is https://api.flymy.ai/api/v1/<endpoint id>, for example
https://api.flymy.ai/api/v1/flymyai/claude-haiku-5-5. Your FlyMy.AI key goes
where each SDK puts its own key.
| API | Base URL | Key |
|---|---|---|
| FlyMy.AI API | POST <address>/predict | X-API-KEY |
| Chat Completions, every model | <address>/openai/v1 | Authorization: Bearer |
| OpenAI Responses, GPT | <address>/openai/v1 | Authorization: Bearer |
| Anthropic Messages, Claude | <address>/anthropic | x-api-key |
Google generateContent and streamGenerateContent, Gemini | <address>/google (v1beta) | x-goog-api-key |
Another maker's API under a model's address answers 400.
OpenAI SDK - Responses API
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.flymy.ai/api/v1/flymyai/gpt-6-luna/openai/v1",
api_key=os.environ["FLYMYAI_API_KEY"],
)
response = client.responses.create(
model="gpt-6-luna",
input="Write a haiku about the sea.",
)
print(response.output_text)
Responses are not stored at OpenAI: send the conversation in input instead of
previous_response_id. GPT-6 Astra, GPT-6.1 Sol and GPT-6.1 Terra take function
tools on the Responses API only; GPT-6 Luna takes them on Chat Completions only
with reasoning_effort none.
Anthropic SDK - Messages API
import os
import anthropic
client = anthropic.Anthropic(
base_url="https://api.flymy.ai/api/v1/flymyai/claude-haiku-5-5/anthropic",
api_key=os.environ["FLYMYAI_API_KEY"],
)
message = client.messages.create(
model="claude-haiku-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a haiku about the sea."}],
)
print("".join(block.text for block in message.content if block.type == "text"))
On Chat Completions, Anthropic's compatibility layer, Claude ignores
reasoning_effort and has no prompt caching: use the Messages API for those and
for PDF documents.
Google GenAI SDK - generateContent
import os
from google import genai
from google.genai import types
client = genai.Client(
api_key=os.environ["FLYMYAI_API_KEY"],
http_options=types.HttpOptions(
base_url="https://api.flymy.ai/api/v1/flymyai/gemini-3_5-flash-lite/google",
api_version="v1beta",
),
)
response = client.models.generate_content(
model="gemini-3.5-flash-lite",
contents="Write a haiku about the sea.",
)
print(response.text)
generate_content_stream streams. On this route Gemini also takes audio, video
and PDF, inline or by a public URL.
OpenAI-compatible API
Every model here answers Chat Completions under <address>/openai/v1:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.flymy.ai/api/v1/flymyai/gemini-3_5-flash-lite/openai/v1",
api_key=os.environ["FLYMYAI_API_KEY"],
)
response = client.chat.completions.create(
model="gemini-3.5-flash-lite",
messages=[{"role": "user", "content": "Write a haiku about the sea."}],
)
print(response.choices[0].message.content)
print(response.usage)
For these models the request goes to the maker as you send it, so the parameter table of OpenAI-Compatible API does not apply to them: the maker's own Chat Completions rules do.
FlyMy.AI API
curl -X POST https://api.flymy.ai/api/v1/flymyai/claude-haiku-5-5/predict \
-H "X-API-KEY: $FLYMYAI_API_KEY" \
-F "prompt=Write a haiku about the sea." \
-F "reasoning_effort=low"
| Input | |
|---|---|
prompt | One user message |
messages | Chat history as a JSON array of {role, content}; used instead of prompt. Text and image_url parts |
system_prompt | Instructions for the whole chat |
reasoning_effort | The model's levels, listed on its page |
max_tokens | Most tokens to generate, reasoning included |
private_mode | true keeps the prompt and the answer out of FlyMy.AI storage and logs (synchronous calls only) |
output_data holds output (the answer), finish_reason, model,
stream_details (tokens read, cached, written to the cache and reasoned) and
charge_usd, the price of the call. From an assistant connected to the Agents MCP:
run_model({"endpoint_id":"flymyai/claude-haiku-5-5",
"input":{"prompt":"Write a haiku about the sea."}})
The charge of every answer
An answer that is not streamed carries its price in the header
x-flymy-cost-usd; Chat Completions also puts it in usage.cost. The FlyMy.AI
API returns charge_usd.
Not offered
- Tools the makers run themselves: web search, code execution, file search, image generation and the like.
- The makers' files and batch APIs, and anything they would store for you: stored responses and conversations, Google's context caches.
- Fast, flex, priority and other non-default tiers.
A request that asks for one of them is refused with 400 before anything is
charged.