Skip to main content

Text model

GPT-6 Luna Pro

openai/gpt-6-luna-pro

openai/gpt-6-luna-pro is a language model from OpenAI you can call on the OceanToken API, with a 922K-token context window and up to 128K output tokens; it supports reasoning, tool calling, image input, file input.

Price card, similar models and questions answered: GPT-6 Luna Pro on oceantoken.ai.

At a glance

Model IDopenai/gpt-6-luna-pro
TypeText
PublisherOpenAI
Context window922,000 tokens
Max output128,000 tokens
PriceOn oceantoken.ai
Capabilitiesreasoning, tool calling, image input, file input
Endpoint/v1/chat/completions, /v1/responses
API shapeOpenAI-compatible
In the catalog since2026-09-22

API

POST /v1/chat/completions (also /v1/responses and /v1/messages). Base URL https://api.oceantoken.ai, your OceanToken key as the bearer token. The OpenAI SDKs work unchanged; see the Quickstart.

Download this spec (JSON) · llms.txt for AI assistants

Basic

curl https://api.oceantoken.ai/v1/chat/completions \
-H "Authorization: Bearer $OCEANTOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-6-luna-pro",
"messages": [
{
"role": "user",
"content": "Write a haiku about the ocean."
}
]
}'

Image input

curl https://api.oceantoken.ai/v1/chat/completions \
-H "Authorization: Bearer $OCEANTOKEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-6-luna-pro",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is in this image?"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/photo.jpg"
}
}
]
}
]
}'

Request parameters

Only what this model takes. Anything else in the request is left out before it reaches the model.

ParameterTypeDescription
model
required
stringThis model's ID.
messages
required
arrayThe conversation so far: objects with a role (system, user, assistant or tool) and a content, a string or a list of content parts: text, and images, video, audio or files on models that take them.
streamboolean
default false
Send the answer as server-sent events as it is written.
stream_optionsobjectWith stream: {"include_usage": true} adds a last event with the token counts.
max_tokensinteger
1 to 128000
The most tokens to write, reasoning included. max_completion_tokens is accepted as the same thing.
seedintegerAsk for the same answer to the same request (best effort).
response_formatobject
json_object, json_schema
{"type": "json_object"} for JSON output, or {"type": "json_schema", "json_schema": {"name": ..., "schema": {...}}} for output that matches your schema.
toolsarrayFunctions the model may call: {"type": "function", "function": {"name", "description", "parameters"}}.
tool_choicestring or objectauto (default), none, required, or {"type": "function", "function": {"name": ...}}.
parallel_tool_callsbooleanfalse asks for at most one tool call per turn.
reasoning_effortstring
none, low, medium, high, xhigh, max
default "medium"
How much the model thinks before answering. none no reasoning; low less reasoning, faster; medium balanced; high more reasoning, slower; xhigh more than high; max the most reasoning.
userstringYour own ID for the end user, for your records.

Message content

Besides a plain string, a message's content can be a list of parts:

image_url

An image, as a public https:// URL or a data URL.

FieldTypeDescription
image_url.url
required
stringhttps:// URL or data:image/...;base64,....
{
"type": "image_url",
"image_url": {
"url": "https://example.com/photo.jpg"
}
}

file

A document such as a PDF, by URL or as base64.

FieldTypeDescription
file.file_data
required
stringA data URL or an https:// URL.
{
"type": "file",
"file": {
"file_data": "data:application/pdf;base64,...",
"filename": "report.pdf"
}
}

Response

FieldTypeDescription
idstringThe request's ID.
choices[].message.contentstringThe answer.
choices[].message.reasoning_contentstringThe model's reasoning, on models that return it.
choices[].message.tool_callsarrayThe tools the model wants called, with JSON arguments.
choices[].finish_reasonstringstop, length (hit max_tokens), tool_calls or content_filter.
usage.prompt_tokensintegerInput tokens, media included.
usage.completion_tokensintegerOutput tokens, reasoning included.
usage.prompt_tokens_details.cached_tokensintegerInput tokens read from the prompt cache.
usage.completion_tokens_details.reasoning_tokensintegerOutput tokens spent reasoning.

With stream: true, chat.completion.chunk events carry choices[].delta; the stream ends with data: [DONE].

Example response
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1792000000,
"model": "openai/gpt-6-luna-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "...",
"reasoning_content": null,
"tool_calls": null
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 20,
"total_tokens": 32,
"prompt_tokens_details": {
"cached_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 0
}
}
}

More examples and how errors and billing work: Text generation.

Compared with similar models

Text models on OceanToken in the same price range as openai/gpt-6-luna-pro. Compare their prices on oceantoken.ai.

ModelPublisherContext
GPT-6 Luna Pro
openai/gpt-6-luna-pro
OpenAI922,000
Claude Haiku Latest
anthropic/claude-haiku-latest
Anthropic1M
Phi-4
microsoft/phi-4
Microsoft16K
Ternary Bonsai 2 27B
prism-ml/ternary-bonsai-2-27b
Prism Ml262K

More from OpenAI

All OpenAI models on OceanToken

Use it

Create an account Price on oceantoken.ai

The facts on this page were read from the live OceanToken catalog on 2026-11-05 (UTC), when the documentation was built. Prices are published on oceantoken.ai.