Sign up for new-member prices on your first plan

Gemini 3 Pro API

Buble exposes Gemini 3 Pro through the public chat model API as google/gemini-3-pro-preview.

Model identity

Field Value
Buble model key google/gemini-3-pro-preview
Runtime model id gemini-3-pro
Provider Google
Public capabilities Reasoning, image attachments, tool calling

Pricing

Unit Credits
Input 40 credits per 1,000,000 tokens
Output 280 credits per 1,000,000 tokens
Cached input 40 credits per 1,000,000 tokens

Model options

Option Type Default Values
reasoning_effort string medium none, low, medium, high

Set reasoning: true to enable reasoning. Pass the configured effort through options.reasoning_effort.

OpenAI-compatible example

curl https://buble.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $BUBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-3-pro-preview",
    "messages": [
      {
        "role": "system",
        "content": "You are a rigorous reasoning assistant."
      },
      {
        "role": "user",
        "content": "Evaluate this architecture proposal and list the main operational risks."
      }
    ],
    "reasoning": true,
    "options": {
      "reasoning_effort": "medium"
    },
    "max_completion_tokens": 800
  }'

Anthropic Messages-compatible example

curl https://buble.ai/api/v1/messages \
  -H "Authorization: Bearer $BUBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemini-3-pro-preview",
    "system": "You are a rigorous reasoning assistant.",
    "messages": [
      {
        "role": "user",
        "content": [
          {
            "type": "text",
            "text": "Evaluate this architecture proposal and list the main operational risks."
          }
        ]
      }
    ],
    "thinking": true,
    "options": {
      "reasoning_effort": "medium"
    },
    "max_tokens": 800
  }'

Gemini-compatible example

curl https://buble.ai/api/v1beta/models/google/gemini-3-pro-preview:generateContent \
  -H "Authorization: Bearer $BUBLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "systemInstruction": {
      "parts": [
        {
          "text": "You are a rigorous reasoning assistant."
        }
      ]
    },
    "contents": [
      {
        "role": "user",
        "parts": [
          {
            "text": "Evaluate this architecture proposal and list the main operational risks."
          }
        ]
      }
    ],
    "reasoning": true,
    "options": {
      "reasoning_effort": "medium"
    },
    "generationConfig": {
      "maxOutputTokens": 800
    }
  }'

For Gemini-compatible streaming, use /api/v1beta/models/google/gemini-3-pro-preview:streamGenerateContent.

SDK examples

The examples below use this page's Buble chat model key through the OpenAI-compatible Chat Completions SDK method. They assume you have already initialized the SDK client as shown in the Quickstart and imported the required language SDK types. Anthropic Messages and Gemini-compatible calls use the same model key; Gemini streaming must use the SDK's streamGenerateContent / stream_generate_content method.

JavaScript / TypeScript

const completion = await buble.chat.completions.create({
  model: 'google/gemini-3-pro-preview',
  messages: [
    { role: 'system', content: 'You are a rigorous reasoning assistant.' },
    {
      role: 'user',
      content:
        'Evaluate this architecture proposal and list the main operational risks.',
    },
  ],
  reasoning: true,
  options: {
    reasoning_effort: 'medium',
  },
  max_completion_tokens: 800,
});

console.log(completion.choices?.[0]?.message?.content);

Python

completion = client.chat.completions.create(
    model="google/gemini-3-pro-preview",
    messages=[
        {"role": "system", "content": "You are a rigorous reasoning assistant."},
        {"role": "user", "content": "Evaluate this architecture proposal and list the main operational risks."},
    ],
    reasoning=True,
    options={"reasoning_effort": "medium"},
    max_completion_tokens=800,
)

print(completion["choices"][0]["message"]["content"])

Go

completion, err := client.Chat.Completions.Create(ctx, buble.ChatRequest{
	"model": "google/gemini-3-pro-preview",
	"messages": []any{
		map[string]any{"role": "system", "content": "You are a rigorous reasoning assistant."},
		map[string]any{"role": "user", "content": "Evaluate this architecture proposal and list the main operational risks."},
	},
	"reasoning":             true,
	"options": map[string]any{"reasoning_effort": "medium"},
	"max_completion_tokens": 800,
})
if err != nil {
	return err
}
fmt.Println(completion)

Rust

let completion = client.chat().completions().create(serde_json::json!({
    "model": "google/gemini-3-pro-preview",
    "messages": [
        { "role": "system", "content": "You are a rigorous reasoning assistant." },
        { "role": "user", "content": "Evaluate this architecture proposal and list the main operational risks." }
    ],
    "reasoning": true,
    "options": { "reasoning_effort": "medium" },
    "max_completion_tokens": 800
})).await?;

Swift

let completion = try await client.chat.completions.create([
    "model": "google/gemini-3-pro-preview",
    "messages": [
        ["role": "system", "content": "You are a rigorous reasoning assistant."],
        ["role": "user", "content": "Evaluate this architecture proposal and list the main operational risks."]
    ],
    "reasoning": true,
    "options": ["reasoning_effort": "medium"],
    "max_completion_tokens": 800
])

Dart / Flutter

final completion = await client.chat.completions.create({
  'model': 'google/gemini-3-pro-preview',
  'messages': [
    {'role': 'system', 'content': 'You are a rigorous reasoning assistant.'},
    {'role': 'user', 'content': 'Evaluate this architecture proposal and list the main operational risks.'},
  ],
  'reasoning': true,
  'options': {'reasoning_effort': 'medium'},
  'max_completion_tokens': 800,
});

Elixir

{:ok, completion} =
  Buble.Chat.Completions.create(client, %{
    model: "google/gemini-3-pro-preview",
    messages: [
      %{role: "system", content: "You are a rigorous reasoning assistant."},
      %{role: "user", content: "Evaluate this architecture proposal and list the main operational risks."}
    ],
    reasoning: true,
    options: %{reasoning_effort: "medium"},
    max_completion_tokens: 800
  })

Java

var completion = client.chat().completions().create(Map.of(
        "model", "google/gemini-3-pro-preview",
        "messages", List.of(
                Map.of("role", "system", "content", "You are a rigorous reasoning assistant."),
                Map.of("role", "user", "content", "Evaluate this architecture proposal and list the main operational risks.")),
        "reasoning", true,
        "options", Map.of("reasoning_effort", "medium"),
        "max_completion_tokens", 800));

.NET

var completion = await client.Chat.Completions.CreateAsync(new Dictionary<string, object?>
{
    ["model"] = "google/gemini-3-pro-preview",
    ["messages"] = new[]
    {
        new Dictionary<string, object?> { ["role"] = "system", ["content"] = "You are a rigorous reasoning assistant." },
        new Dictionary<string, object?> { ["role"] = "user", ["content"] = "Evaluate this architecture proposal and list the main operational risks." }
    },
    ["reasoning"] = true,
    ["options"] = new Dictionary<string, object?>
    {
        ["reasoning_effort"] = "medium"
    },
    ["max_completion_tokens"] = 800
});

PHP

$completion = $client->chat()->completions()->create([
    'model' => 'google/gemini-3-pro-preview',
    'messages' => [
        ['role' => 'system', 'content' => 'You are a rigorous reasoning assistant.'],
        ['role' => 'user', 'content' => 'Evaluate this architecture proposal and list the main operational risks.'],
    ],
    'reasoning' => true,
    'options' => [
        'reasoning_effort' => 'medium',
    ],
    'max_completion_tokens' => 800,
]);

Ruby

completion = client.chat.completions.create(
  model: "google/gemini-3-pro-preview",
  messages: [
    { role: "system", content: "You are a rigorous reasoning assistant." },
    { role: "user", content: "Evaluate this architecture proposal and list the main operational risks." }
  ],
  reasoning: true,
  options: {reasoning_effort: "medium"},
  max_completion_tokens: 800
)