Docs
  1. Gemini
Docs
  • Introduction
  • Quick Start Guide
  • Make a request
  • Chat Models
    • ChatGpt
      • ChatGPT (Audio)
        • Create a voice with gpt-4o-mini-tts
        • Create a voice
        • Create a transcript
        • Create translation
      • ChatGPT (Chat)
        • Chat completion object
        • Create chat completion (streaming)
        • Create chat completion (non-streaming)
        • Create chat image recognition (streaming)
        • Create chat image recognition (streaming) base64
        • Create chat image recognition (non-streaming)
        • Function calling
        • N choices
        • Create chat function call (only non-streaming)
        • Create structured output
      • ChatGPT (Completions)
        • Completion object
        • Creation completed
      • ChatGPT(Embeddings)
        • Embedded Object
        • Create embed
    • Anthropic Claude
      • Offical Format
        • Messages (official Anthropic format)
        • Messages(Image Recognition)
        • Messages(function call)
        • Messages(Web search)
      • Create chat completion (streaming)
      • Create chat completion (non-streaming)
      • Create chat image recognition (streaming)
      • Create chat image recognition (non-streaming)
    • Gemini
      • Gemini Image creation interface (gemini-2.0-flash-exp-image-generation)
        POST
      • Chat interface
        POST
      • Image recognition interface
        POST
      • Function calling - Google Search
        POST
      • Function calling - codeExecution
        POST
  • Image Models
    • GPT-IMAGE-1
      • Generate Image by gpt-image-1
      • Edit Image by gpt-image-1
    • MJ
      • Submit Imagine task (mj_imagine)
      • Submit Blend task (mj_blend)
      • Submit Describe task (mj_describe)
      • Submit Change task (mj_variation, mj_upscale,mj_reroll)
      • Query task status based on task ID
    • Ideogram
      • Generate with Ideogram 3.0
      • Edit with Ideogram 3.0
      • Remix with Ideogram 3.0
      • Ideogram Upscale
    • Kling Image
      • Submit Image Generation
      • Get Image by Task ID
      • Submit Kolors Virtual Try On
      • Get Kolors Virtual Try On by Task ID
    • Flux
      • Flux on Replicate
        • Submit Image by flux-kontext-pro
        • Submit Image by flux-kontext-max
        • Submit Image by flux-pro
        • Get Image by ID
    • Recraft API
      • Recraft Image
      • Generate Image
      • Generate Vector Image
      • Remove Background
      • Clarity Upscale
      • Generative Upscale
    • Models use Dall-e Format
      • Google Imagen
      • Bytedance - seedream-3.0
      • Recraftv3 use Dall-e endpoint
      • Flux use Dall-e endpoint
    • DALL·E 3
      POST
  • Video Models
    • Kling Video
      • Create Video by Text
      • Get Video by Task ID(text2video)
      • Create Video by Image
      • Get Video by Task ID(image2video)
    • Runway ML Video
      • Create Video by Runway
      • Get Video by Task ID
    • Luma Video
      • Create Video by Luma
      • Get Video by Task ID
    • Pika Video
      • Create Video by Pika
      • Get Video by Task ID
    • Google Veo
      • Submit Video Request
      • Submit Video Request with Frames
      • Get Video by ID
    • Minimax - Hailuo
      • Submit Video Request
      • Get Video
  • Music Model - Suno
    • Illustrate
    • Parameter
    • Task submission
      • Generate songs (inspiration, customization, continuation)
      • Generate lyrics
    • Query interface
      • Query a single task
  • Python Samples
    • python openai official library (using AutoGPT, langchain, etc.)
    • Python uses speech to text
    • Python uses text to speech
    • Python uses Embeddings
    • python calls DALL·E
    • python simple call openai function-calling demo
    • python langchain
    • python llama_index
    • Python uses gpt-4o to identify pictures-local pictures
    • python library streaming output
    • Python uses gpt-4o to identify images
  • Plug-in/software usage tutorials
    • Setting HTTP for Make.com with Yescale
    • Sample Code for gpt-4o-audio/gpt-4o-mini-audio
  • Help Center
    • HTTP status codes
  • Tutorials
    • GPT-Image-1 API: A Step-by-Step Guide With Examples
  1. Gemini

Function calling - Google Search

POST
/v1/chat/completions
Use Google Search Grouding

Request

Header Params
Content-Type
string 
required
Example:
application/json
Accept
string 
required
Example:
application/json
Authorization
string 
optional
Example:
Bearer {{YOUR_API_KEY}}
Body Params application/json
model
string 
required
The ID of the model to use. For more information about which models can be used with the Chat API, see the model endpoint compatibility table.
messages
array [object {2}] 
required
List of messages contained in the conversation so far. Python code examples.
role
string 
optional
content
string 
optional
temperature
integer 
optional
What sampling temperature to use, between 0 and 2. A higher value (like 0.8) will make the output more random, while a lower value (like 0.2) will make the output more focused and deterministic. We generally recommend changing this or top_p but not both.
top_p
integer 
optional
An alternative to temperature sampling, called kernel sampling, where the model considers the results of markers with top_p probability mass. So 0.1 means only the tokens that make up the top 10% of probability mass are considered. We generally recommend changing this or temperature but not both.
n
integer 
optional
Default is 1
How many chat completion choices are generated for each input message.
stream
boolean 
optional
Defaults to false If set, partial message deltas will be sent like in ChatGPT. Markers will be sent in the form of data-only server-sent events when available, and on a data: [DONE] message terminating the stream. Python code examples.
stop
string 
optional
Defaults to null for up to 4 sequences and the API will stop generating further tokens.
max_tokens
integer 
optional
Default is inf
The maximum number of tokens generated in chat completion.
The total length of input tokens and generated tokens is limited by the context length of the model. Python code example for calculating tokens.
presence_penalty
number 
optional
A number between -2.0 and 2.0. Positive values ​​penalize new tokens based on whether they have appeared in the text so far, thus increasing the likelihood that the model is talking about new topics. See more information on frequency and presence penalties.
frequency_penalty
number 
optional
Defaults to 0 -a number between 2.0 and 2.0. Positive values ​​penalize new tokens based on how frequently the text currently exists, reducing the likelihood that the model will repeat the same line. More information on frequency and presence penalties.
logit_bias
null 
optional
Modifies the likelihood that the specified tag appears in completion.
Accepts a JSON object that maps tags (tag IDs specified by the tagger) to associated bias values ​​(-100 to 100). Mathematically speaking, the bias is added to the logit generated by the model before sampling the model. The exact effect varies between models, but values ​​between -1 and 1 should reduce or increase the selection likelihood of the relevant marker; values ​​such as -100 or 100 should result in disabled or exclusive selection of the relevant marker.
user
string 
optional
A unique identifier that represents your end user and helps OpenAI monitor and detect abuse. Learn more.
response_format
object 
optional
An object that specifies the format in which the model must be output. Setting { "type": "json_object" } enables JSON mode, which ensures that messages generated by the model are valid JSON. Important: When using JSON schema, you must also instruct the model to generate JSON via a system or user message. If you don't do this, the model may generate an endless stream of blanks until the token limit is reached, resulting in increased latency and the appearance of a "stuck" request. Also note that if finish_reason="length", the message content may be partially cut off, indicating that the generation exceeded max_tokens or the conversation exceeded the maximum context length. display properties
seen
integer 
optional
This feature is in beta. If specified, our system will do its best to sample deterministically so that repeated requests with the same seed and parameters should return the same results. Determinism is not guaranteed and you should refer to the system_fingerprint response parameter to monitor the backend for changes.
tools
array[string]
required
A list of a set of tools that the model can call. Currently, only functions that are tools are supported. Use this feature to provide a list of functions for which the model can generate JSON input.
tool_choice
object 
required
Controls which function (if any) the model calls. none means that the model will not call the function, but generate a message. auto means that the model can choose between generating messages and calling functions. Force the model to call the function via {"type": "function", "function": {"name": "my_function"}}. If no function exists, the default is none. If a function exists, it defaults to auto. Show possible types
Example
{
  "model": "gemini-2.5-flash-preview-05-20",
  "messages": [
    {
      "role": "user",
      "content": "Giá vàng hôm nay."
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "googleSearch"
      }
    }
  ],
  "tool_choice": "auto"
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST '/v1/chat/completions' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{YOUR_API_KEY}}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "model": "gemini-2.5-flash-preview-05-20",
  "messages": [
    {
      "role": "user",
      "content": "Giá vàng hôm nay."
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "googleSearch"
      }
    }
  ],
  "tool_choice": "auto"
}'

Responses

🟢200OK
application/json
Body
id
string 
required
model
string 
required
object
string 
required
created
integer 
required
choices
array [object {3}] 
required
index
integer 
optional
message
object 
optional
finish_reason
string 
optional
usage
object 
required
prompt_tokens
integer 
required
completion_tokens
integer 
required
total_tokens
integer 
required
prompt_tokens_details
object 
required
completion_tokens_details
object 
required
input_tokens
integer 
required
output_tokens
integer 
required
input_tokens_details
null 
required
Example
{
    "id": "chatcmpl-413149122b27455faf6c96eed8fedf2d",
    "model": "gemini-2.5-flash-preview-05-20",
    "object": "chat.completion",
    "created": 1748165169,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Giá vàng trong nước và thế giới ngày 25/5/2025 đang có nhiều biến động tăng mạnh.\n\n**Tại thị trường trong nước (cập nhật lúc 9h30 ngày 25/5):**\n\n*   **Vàng miếng SJC:**\n    *   Công ty Vàng bạc đá quý Sài Gòn (SJC) niêm yết giá vàng miếng SJC mua vào - bán ra ở mức 119 - 121 triệu đồng/lượng. Chênh lệch mua-bán là 2 triệu đồng/lượng.\n    *   Giá vàng miếng SJC chốt tuần ở mức 121 triệu đồng/lượng.\n    *   Giá vàng miếng DOJI tại Hà Nội và Thành phố Hồ Chí Minh mua vào ở mức 119 triệu đồng/lượng và bán ra 121 triệu đồng/lượng.\n    *   Giá vàng miếng SJC đã tăng 3,5 triệu đồng ở chiều mua vào và 2,5 triệu đồng (bán ra) so với cuối tuần trước.\n*   **Vàng nhẫn SJC 9999:**\n    *   SJC niêm yết giá vàng nhẫn SJC 9999 mua vào 113,5 triệu đồng/lượng, bán ra 116 triệu đồng/lượng.\n    *   Giá vàng nhẫn SJC tăng 1 triệu đồng chiều mua và 500.000 đồng chiều bán lên lần lượt 113,5 triệu đồng/lượng và 116 triệu đồng/lượng.\n    *   Vàng PNJ hiện mua vào ở mức 113 triệu đồng/lượng và bán ra mức 116 triệu đồng/lượng.\n\n**Giá vàng thế giới (cập nhật lúc 15:40:00 ngày 25/05/2025):**\n\n*   Giá vàng thế giới giao dịch ở mức 3.356 USD/ounce.\n*   Giá vàng quốc tế (XAU) hôm nay là 3.357,40 USD/Ounce, tăng 1.82% trong 24 giờ qua, tương ứng tăng 60.03 USD/Ounce.\n*   Quy đổi theo tỷ giá Vietcombank, 1 Ounce vàng thế giới tương đương 87.728.862 VNĐ.\n*   1 cây vàng theo giá vàng thế giới quy đổi sang tiền Việt Nam Đồng có giá là 105.770.568 VNĐ.\n\nGiá vàng thế giới tăng mạnh do nhà đầu tư đổ dồn vào vàng như một tài sản trú ẩn an toàn trước những động thái cứng rắn về thuế quan của Tổng thống Mỹ Donald Trump và lo ngại về độ tin cậy của đồng USD và trái phiếu Mỹ."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 6,
        "completion_tokens": 738,
        "total_tokens": 744,
        "prompt_tokens_details": {
            "cached_tokens": 0,
            "text_tokens": 0,
            "audio_tokens": 0,
            "image_tokens": 0
        },
        "completion_tokens_details": {
            "text_tokens": 0,
            "audio_tokens": 0,
            "reasoning_tokens": 44
        },
        "input_tokens": 0,
        "output_tokens": 0,
        "input_tokens_details": null
    }
}
Modified at 2025-05-25 09:34:39
Previous
Image recognition interface
Next
Function calling - codeExecution
Built with