Skip to main content

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:

  1. The FlyMy.AI API - prompt or messages, the same inputs and outputs for every model; from an assistant, run_model on the Agents MCP.
  2. The OpenAI-compatible API - Chat Completions under the model's address.
  3. 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​

ModelEndpoint idMaker's APIMaker's model id
Claude Fable 5.2flymyai/claude-fable-5-2Anthropic Messagesclaude-fable-5-2
Claude Opus 5.5flymyai/claude-opus-5-5Anthropic Messagesclaude-opus-5-5
Claude Sonnet 5.5flymyai/claude-sonnet-5-5Anthropic Messagesclaude-sonnet-5-5
Claude Haiku 5.5flymyai/claude-haiku-5-5Anthropic Messagesclaude-haiku-5-5
GPT-6 Astraflymyai/gpt-6-astraOpenAI Responsesgpt-6-astra
GPT-6.1 Solflymyai/gpt-6_1-solOpenAI Responsesgpt-6.1-sol
GPT-6.1 Terraflymyai/gpt-6_1-terraOpenAI Responsesgpt-6.1-terra
GPT-6 Lunaflymyai/gpt-6-lunaOpenAI Responsesgpt-6-luna
Gemini 4 Carbonflymyai/gemini-4-carbonGoogle generateContentgemini-4-carbon
Gemini 4 Argonflymyai/gemini-4-argonGoogle generateContentgemini-4-argon
Gemini 3.8 Flashflymyai/gemini-3_8-flashGoogle generateContentgemini-3.8-flash
Gemini 3.5 Flash-Liteflymyai/gemini-3_5-flash-liteGoogle generateContentgemini-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.

APIBase URLKey
FlyMy.AI APIPOST <address>/predictX-API-KEY
Chat Completions, every model<address>/openai/v1Authorization: Bearer
OpenAI Responses, GPT<address>/openai/v1Authorization: Bearer
Anthropic Messages, Claude<address>/anthropicx-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
promptOne user message
messagesChat history as a JSON array of {role, content}; used instead of prompt. Text and image_url parts
system_promptInstructions for the whole chat
reasoning_effortThe model's levels, listed on its page
max_tokensMost tokens to generate, reasoning included
private_modetrue 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.

Next​