Blog / LLM API for GPT, Claude and Gemini

Guide · Models

One LLM API key for GPT, Claude and Gemini: three ways to call 37 models

The current chat models of OpenAI, Anthropic and Google now run on FlyMy.AI, each as a project flymyai/<name>. One FlyMy.AI key and one balance call all of them, through the FlyMyAI API, an OpenAI-compatible API or each maker's own API with its official SDK. A guide with the models, their prices and code you can paste.

One key with a pixel-wing bow opens three portals for three AI model makers, next to a FlyMy.AI plate.

What an LLM API is, and why one key

An LLM API is a web endpoint for a large language model: you send a request with your key, the maker's servers run the model, and you get the answer back as text, all at once or as a stream. You pay for the tokens the model reads and writes. Every maker has its own: OpenAI has Chat Completions and the Responses API, Anthropic has the Messages API, and Google has generateContent. Each comes with its own account, its own key, its own SDK and its own bill.

That is fine while you use one model. It gets in the way when you want to try Claude on the prompt you wrote for GPT, move a feature to Gemini, or let an agent pick the model per task. With FlyMy.AI, one key and one balance reach the current chat models of all three makers: a unified LLM API in which you still call each model in the API format its maker documents.

What's new on FlyMy.AI

From 12 November 2026, the chat models of OpenAI, Anthropic and Google are a new family of models on FlyMy.AI, with a new way to call them. Each model is a project with its own address, https://api.flymy.ai/api/v1/flymyai/<name>, and the platform log lists the change.

One key, one balance

Your FlyMy.AI API key calls all 37 models of the three makers. Usage is billed per token from one balance, at the maker's list price.

37 models, 12 listed

12 current models are listed on app.flymy.ai/models. The other 25, earlier and preview versions, answer at their addresses the same way.

Prompt in, text out

The FlyMyAI API and the MCP tool run_model take a prompt or a chat history and answer with text.

An OpenAI-compatible API

Claude, Gemini and GPT models answer Chat Completions under their address, so the OpenAI SDK works with all three makers.

The maker's own API

OpenAI Responses, Anthropic Messages and Google generateContent under the model's address: change the base URL and the key, keep your code.

The charge in the answer

A complete answer carries its charge in the x-flymy-cost-usd header; a Chat Completions answer also has it in usage.cost.

The models you can call

The 12 models listed on app.flymy.ai/models are the current ones of each maker. The project name goes into the address, and the address decides which model answers; in the model field of a request, write the maker's model id.

ModelMakerProject name (address)Model idContext, tokensMax output, tokensEffort levels
GPT-6 AstraOpenAIgpt-6-astragpt-6-astra1,050,000128,000low, medium, high, xhigh, max
GPT-6.1 SolOpenAIgpt-6_1-solgpt-6.1-sol1,050,000128,000low, medium, high, xhigh, max
GPT-6.1 TerraOpenAIgpt-6_1-terragpt-6.1-terra1,050,000128,000none, low, medium, high, xhigh, max
GPT-6 LunaOpenAIgpt-6-lunagpt-6-luna1,050,000128,000none, low, medium, high, xhigh, max
Claude Fable 5.2Anthropicclaude-fable-5-2claude-fable-5-21,000,000128,000low, medium, high, xhigh, max
Claude Opus 5.5Anthropicclaude-opus-5-5claude-opus-5-51,000,000128,000low, medium, high, xhigh, max
Claude Sonnet 5.5Anthropicclaude-sonnet-5-5claude-sonnet-5-51,000,000128,000low, medium, high, xhigh, max
Claude Haiku 5.5Anthropicclaude-haiku-5-5claude-haiku-5-51,000,000128,000low, medium, high, xhigh, max
Gemini 4 CarbonGooglegemini-4-carbongemini-4-carbon1,048,57665,536low, medium, high
Gemini 4 ArgonGooglegemini-4-argongemini-4-argon1,048,57665,536low, medium, high
Gemini 3.8 FlashGooglegemini-3_8-flashgemini-3.8-flash1,048,57665,536low, medium, high
Gemini 3.5 Flash-LiteGooglegemini-3_5-flash-litegemini-3.5-flash-lite1,048,57665,536minimal, low, medium, high

The other 25 are earlier versions and previews. They are not listed in the app and answer the same way at their addresses:

ModelMakerProject name (address)Model idContext, tokensInput, per 1MOutput, per 1M
GPT-6 SolOpenAIgpt-6-solgpt-6-sol1,050,000$2.00$10.00
GPT-5.6 SolOpenAIgpt-5_6-solgpt-5.6-sol1,050,000$4.00$20.00
GPT-5.6 TerraOpenAIgpt-5_6-terragpt-5.6-terra1,050,000$2.00$12.00
GPT-5.6 LunaOpenAIgpt-5_6-lunagpt-5.6-luna1,050,000$0.20$1.20
GPT-5.5OpenAIgpt-5_5gpt-5.51,050,000$5.00$30.00
GPT-5.5 ProOpenAIgpt-5_5-progpt-5.5-pro1,050,000$30.00$180.00
GPT-5.4OpenAIgpt-5_4gpt-5.41,050,000$2.50$15.00
GPT-5.4 ProOpenAIgpt-5_4-progpt-5.4-pro1,050,000$30.00$180.00
GPT-5.4 MiniOpenAIgpt-5_4-minigpt-5.4-mini400,000$0.75$4.50
GPT-5.2OpenAIgpt-5_2gpt-5.2400,000$1.75$14.00
GPT-5.2 ProOpenAIgpt-5_2-progpt-5.2-pro400,000$21.00$168.00
Claude Fable 5.1Anthropicclaude-fable-5-1claude-fable-5-11,000,000$10.00$50.00
Claude Fable 5Anthropicclaude-fable-5claude-fable-51,000,000$10.00$50.00
Claude Opus 5Anthropicclaude-opus-5claude-opus-51,000,000$5.00$25.00
Claude Opus 4.8Anthropicclaude-opus-4-8claude-opus-4-81,000,000$5.00$25.00
Claude Opus 4.7Anthropicclaude-opus-4-7claude-opus-4-71,000,000$5.00$25.00
Claude Opus 4.6Anthropicclaude-opus-4-6claude-opus-4-61,000,000$5.00$25.00
Claude Sonnet 5Anthropicclaude-sonnet-5claude-sonnet-51,000,000$2.00$10.00
Claude Sonnet 4.6Anthropicclaude-sonnet-4-6claude-sonnet-4-61,000,000$3.00$15.00
Claude Haiku 4.5Anthropicclaude-haiku-4-5claude-haiku-4-5-20251001200,000$1.00$5.00
Gemini 3.7 FlashGooglegemini-3_7-flashgemini-3.7-flash1,048,576$0.75$3.75
Gemini 3.5 FlashGooglegemini-3_5-flashgemini-3.5-flash1,048,576$1.50$9.00
Gemini 3.1 Flash-LiteGooglegemini-3_1-flash-litegemini-3.1-flash-lite1,048,576$0.25$1.50
Gemini 3.1 Pro (preview)Googlegemini-3_1-pro-previewgemini-3.1-pro-preview1,048,576$2.00$12.00
Gemini 3 Flash (preview)Googlegemini-3-flash-previewgemini-3-flash-preview1,048,576$0.50$3.00

Prices from the FlyMy.AI catalog on 12 November 2026, per 1M tokens. A long prompt costs more where the maker says so: over 272,000 tokens on GPT-6.1 Sol ($4.00 input, $15.00 output) and the other GPT models that list a long-context price, over 100,000 tokens on Claude Haiku 5.5 ($0.50 input, $2.50 output) and over 200,000 tokens on Gemini 3.1 Pro (preview) ($4.00 input, $18.00 output). Google's introductory prices end for Gemini 4 Carbon and Gemini 4 Argon on 30 November 2026 ($4.00 input, $0.20 cached input and $20.00 output from 1 December) and for Gemini 3.8 Flash and Gemini 3.7 Flash on 31 December 2026 ($1.50, $0.15 and $7.50 from 1 January 2027). Gemini 4 Carbon and Argon write at most 32,768 tokens per request, 65,536 when streamed.

How to call an LLM API with one key, step by step

1. Get your FlyMy.AI API key

Sign in at app.flymy.ai and copy your API key from your Developers page. Keep it in an environment variable, never in your code or a shared repository:

Three SDK code cards plug into one FlyMy.AI socket: one key for every model maker's API.
One FlyMy.AI key, three ways in: the FlyMyAI API, the OpenAI-compatible API or each maker's own SDK.
export FLYMYAI_API_KEY="your FlyMy.AI key"

2. Pick the model and take its address

Every model lives at https://api.flymy.ai/api/v1/flymyai/<name>, with the project name from the tables above: claude-sonnet-5-5, gpt-6_1-sol, gemini-3_8-flash and so on.

3. Choose how to call it

4. Read the charge

A complete answer names what the call cost in the x-flymy-cost-usd header. A Chat Completions answer also carries it in usage.cost, streamed answers included. With the official SDKs, read the header from the raw response:

raw = client.messages.with_raw_response.create(
    model="claude-haiku-5-5",
    max_tokens=256,
    messages=[{"role": "user", "content": "Say hello."}],
)
print(raw.headers["x-flymy-cost-usd"])  # the charge in USD
message = raw.parse()

Way 1: the FlyMyAI API and MCP

The simplest call: send a prompt, get text. The model's page in the app shows the inputs: prompt, or a chat history in messages; system_prompt for instructions; reasoning_effort with the levels the model offers; max_tokens to cap the answer; and private_mode to keep the prompt and the answer out of FlyMyAI storage and logs (synchronous calls only).

curl https://api.flymy.ai/api/v1/flymyai/claude-haiku-5-5/predict \
  -H "X-API-KEY: $FLYMYAI_API_KEY" \
  -d prompt="Explain in two sentences why the sky is blue." \
  -d max_tokens=256

The answer comes as a short event stream whose last event holds the text in output_data.output. The same call is the tool run_model of the FlyMy.AI MCP, so Claude, ChatGPT, Cursor and Codex can call these models for you. Ask in plain words:

Try it
Use Claude Haiku 5.5 on FlyMy.AI to explain in two sentences why the sky is blue.

Way 2: an OpenAI-compatible API for Claude, Gemini and GPT

34 of the 37 models answer OpenAI's Chat Completions under their own address; the three GPT Pro models (GPT-5.5 Pro, GPT-5.4 Pro and GPT-5.2 Pro) answer on the Responses API only. Point the OpenAI SDK at the model's base URL and pass your FlyMy.AI key; the rest of your code stays as it is, streaming included.

base_url = https://api.flymy.ai/api/v1/flymyai/<name>/openai/v1
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.flymy.ai/api/v1/flymyai/claude-sonnet-5-5/openai/v1",
    api_key=os.environ["FLYMYAI_API_KEY"],
)
completion = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Write a haiku about latency."}],
)
print(completion.choices[0].message.content)
print(completion.usage.cost)  # the charge in USD

The same request with curl, to Gemini 3.8 Flash:

curl https://api.flymy.ai/api/v1/flymyai/gemini-3_8-flash/openai/v1/chat/completions \
  -H "Authorization: Bearer $FLYMYAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gemini-3.8-flash",
       "messages": [{"role": "user", "content": "Write a haiku about latency."}]}'

For a GPT model this is OpenAI's own Chat Completions; for Claude and Gemini it is the maker's OpenAI-compatible endpoint, with that maker's limits. Claude's ignores reasoning_effort and has no prompt caching, so use the Messages API for either. Some models take a feature on one API only: GPT-6.1 Sol takes function tools on the Responses API, not on Chat Completions. Each model's page in the app says so. More in the docs: OpenAI-compatible API.

Way 3: the maker's own API and SDK

Each model also answers its maker's own API under its address, so the official SDK works with two changes: the base URL and the key. Your request reaches the maker as you send it, and the answer comes back as the maker sent it.

MakerAPIBase URL or address for the official SDK
OpenAIResponses (and Chat Completions)https://api.flymy.ai/api/v1/flymyai/<name>/openai/v1
AnthropicMessageshttps://api.flymy.ai/api/v1/flymyai/<name>/anthropic
GooglegenerateContent, streamGenerateContenthttps://api.flymy.ai/api/v1/flymyai/<name>/google, which the SDK calls as .../google/v1beta/models/<model id>:generateContent

OpenAI Responses API

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.flymy.ai/api/v1/flymyai/gpt-6_1-sol/openai/v1",
    api_key=os.environ["FLYMYAI_API_KEY"],
)
response = client.responses.create(
    model="gpt-6.1-sol",
    input="Summarize the plot of Hamlet in three sentences.",
    reasoning={"effort": "low"},
)
print(response.output_text)

Send the conversation in input each turn: responses stored at OpenAI, previous_response_id and background mode are not offered.

Anthropic Messages API

The Anthropic base URL is the model's address plus /anthropic; the SDK adds /v1/messages and sends the key as x-api-key.

import os
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.flymy.ai/api/v1/flymyai/claude-sonnet-5-5/anthropic",
    api_key=os.environ["FLYMYAI_API_KEY"],
)
message = client.messages.create(
    model="claude-sonnet-5-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Summarize the plot of Hamlet in three sentences."}],
)
print("".join(block.text for block in message.content if block.type == "text"))

Prompt caching works as Anthropic documents it: mark the long, stable part of the prompt with "cache_control": {"type": "ephemeral"}, and the next calls read it at the cached input price.

Google generateContent (Gemini API)

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_8-flash/google"
    ),
)
response = client.models.generate_content(
    model="gemini-3.8-flash",
    contents="Summarize the plot of Hamlet in three sentences.",
)
print(response.text)

The same call over HTTP, with the key in the x-goog-api-key header:

curl "https://api.flymy.ai/api/v1/flymyai/gemini-3_8-flash/google/v1beta/models/gemini-3.8-flash:generateContent" \
  -H "x-goog-api-key: $FLYMYAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"contents": [{"role": "user", "parts": [{"text": "Summarize the plot of Hamlet in three sentences."}]}]}'

The routes, headers and bodies in these examples are the ones our production check of 12 November 2026 sent to a model of each maker, plain and streamed.

What works, and what is not offered

On the OpenAI-compatible endpoint and the makers' own APIs, the request reaches the maker as you send it. The model is the one in the address. FlyMyAI stores neither the prompt nor the answer on those routes.

Works as the maker documents itNot offered through FlyMy.AI
Function tools (your own tools, called by your code)Tools the makers run themselves: web search, code execution, file search, image generation
Structured outputFiles and batch APIs
Prompt cachingStored responses
StreamingFast or priority tiers

LLM API pricing per 1M tokens

FlyMy.AI bills each call per token at the maker's list price: the fresh input, the cached input, the cache writes where the maker bills them, and the output, reasoning included. The price is the same as the maker's own; what changes is that one balance pays for all three makers. Here are the 12 listed models side by side; the prices of the 25 others are in the table above.

ModelMakerInputCached inputCache writeOutput
GPT-6 AstraOpenAI$10.00$1.00$12.50$50.00
GPT-6.1 SolOpenAI$2.00$0.10$2.50$10.00
GPT-6.1 TerraOpenAI$1.00$0.05$1.25$5.00
GPT-6 LunaOpenAI$0.10$0.01$0.125$0.50
Claude Fable 5.2Anthropic$8.00$0.20$10.00$40.00
Claude Opus 5.5Anthropic$4.00$0.20$5.00$20.00
Claude Sonnet 5.5Anthropic$2.00$0.10$2.50$10.00
Claude Haiku 5.5Anthropic$0.10$0.01$0.125$0.50
Gemini 4 CarbonGoogle$2.00$0.10-$10.00
Gemini 4 ArgonGoogle$2.00$0.10-$10.00
Gemini 3.8 FlashGoogle$0.75$0.075-$3.75
Gemini 3.5 Flash-LiteGoogle$0.30$0.03-$2.50
  • Claude API pricing: Claude Haiku 5.5 $0.10 input and $0.50 output, Claude Sonnet 5.5 $2.00 input and $10.00 output, Claude Opus 5.5 $4.00 input and $20.00 output, Claude Fable 5.2 $8.00 input and $40.00 output per 1M tokens.
  • OpenAI API pricing: GPT-6 Luna $0.10 input and $0.50 output, GPT-6.1 Terra $1.00 input and $5.00 output, GPT-6.1 Sol $2.00 input and $10.00 output, GPT-6 Astra $10.00 input and $50.00 output per 1M tokens.
  • Gemini API pricing: Gemini 3.5 Flash-Lite $0.30 input and $2.50 output, Gemini 3.8 Flash $0.75 input and $3.75 output, Gemini 4 Argon $2.00 input and $10.00 output, Gemini 4 Carbon $2.00 input and $10.00 output per 1M tokens.

For prices of other kinds of models and tools, see the pricing page.

Use cases with ready prompts

Paste these into Claude, ChatGPT, Cursor or Codex with the FlyMy.AI MCP connected, or into a coding agent working in your repository.

1. Compare two models on your own prompt

The fastest way to choose: the same prompt to two makers, answers side by side.

Try it
Ask Claude Sonnet 5.5 and GPT-6.1 Sol on FlyMy.AI the same question and show me both answers side by side: what are three risks of caching LLM answers in a support chatbot?

2. Move an OpenAI SDK app to Claude or Gemini

Two lines change: the base URL and the key. A coding agent can make the change and keep the key out of the code.

Try it
In this repository, point the OpenAI client at FlyMy.AI: base URL https://api.flymy.ai/api/v1/flymyai/claude-sonnet-5-5/openai/v1, model claude-sonnet-5-5, and the key from the FLYMYAI_API_KEY environment variable. Do not put the key in the code.

3. Turn notes into decisions

A cheap, fast model is enough for structured extraction.

Try it
Use Gemini 3.8 Flash on FlyMy.AI to turn these meeting notes into a list of decisions, each with an owner and a date: [paste your notes]

FAQ

What is an LLM API?

An LLM API is a web endpoint for a large language model: you send a request with your key, the maker's servers run the model, and you get the answer back as text, at once or as a stream, paying for the tokens read and written. OpenAI's are Chat Completions and the Responses API, Anthropic's is the Messages API and Google's is generateContent. FlyMy.AI calls the current models of all three with one key.

What is the best API for LLMs?

It depends on the job: the model's quality on your prompts, its price per token, the context it needs and the SDK your code already uses. With one FlyMy.AI key you can run the same prompt on GPT, Claude and Gemini models and compare them before you choose, each in its maker's own API format.

Can I use the OpenAI SDK with Claude or Gemini?

Yes. Set base_url to https://api.flymy.ai/api/v1/flymyai/<name>/openai/v1 and api_key to your FlyMy.AI key, and call chat.completions.create as usual. For Claude this is Anthropic's OpenAI compatibility layer: it ignores reasoning_effort and has no prompt caching, so use the Messages API with the Anthropic SDK for either.

What is the Anthropic base URL on FlyMy.AI?

The model's address plus /anthropic, for example https://api.flymy.ai/api/v1/flymyai/claude-sonnet-5-5/anthropic. Pass it as base_url to the Anthropic SDK with your FlyMy.AI key as api_key; the SDK adds /v1/messages and sends the key as x-api-key.

How much does the Claude API cost on FlyMy.AI?

The same as Anthropic's list price, billed per token from your FlyMy.AI balance: Claude Haiku 5.5 $0.10 input and $0.50 output, Claude Sonnet 5.5 $2.00 input and $10.00 output, Claude Opus 5.5 $4.00 input and $20.00 output, Claude Fable 5.2 $8.00 input and $40.00 output per 1M tokens.

Does FlyMy.AI store my prompts and answers?

Not on the OpenAI-compatible endpoint or the makers' own APIs: the request reaches the maker as you send it, and FlyMyAI stores neither the prompt nor the answer. On the FlyMyAI API, set private_mode to true to keep the prompt and the answer out of FlyMyAI storage and logs (synchronous calls only).

Do function calling, structured output and streaming work?

Yes. On the OpenAI-compatible endpoint and the makers' own APIs, function tools, structured output, prompt caching and streaming work as the maker documents them for that API. Tools the makers run themselves (web search, code execution, file search, image generation), files and batch APIs, stored responses and fast or priority tiers are not offered.

How do I see what a call cost?

A complete answer carries its charge in USD in the x-flymy-cost-usd header. A Chat Completions answer also has it in usage.cost, streamed answers included.

Which models can I call?

37 chat models of OpenAI, Anthropic and Google, each at https://api.flymy.ai/api/v1/flymyai/<name>. 12 current ones are listed on app.flymy.ai/models: GPT-6 Astra, GPT-6.1 Sol, GPT-6.1 Terra, GPT-6 Luna, Claude Fable 5.2, Claude Opus 5.5, Claude Sonnet 5.5, Claude Haiku 5.5, Gemini 4 Carbon, Gemini 4 Argon, Gemini 3.8 Flash and Gemini 3.5 Flash-Lite. The other 25, earlier and preview versions, answer the same way at their addresses.

Call GPT, Claude and Gemini with one key

Take your API key from the app, pick a model and change two lines of your code.

Keep reading