---
# AUTO-GENERATED API DOCUMENTATION - DO NOT EDIT
title: mirascope.core.google.call_response
description: API documentation for mirascope.core.google.call_response
---

# mirascope.core.google.call_response

This module contains the `GoogleCallResponse` class.

<Info title="Usage">

[Calls](/docs/v1/learn/calls#handling-responses)

</Info>

## <ApiType type="Class" path="core/google/call_response" symbolName="GoogleCallResponse" /> GoogleCallResponse

A convenience wrapper around the Google API response.

When calling the Google API using a function decorated with `google_call`, the
response will be a `GoogleCallResponse` instance with properties that allow for
more convenient access to commonly used attributes.


Example:

```python
from mirascope.core import prompt_template
from mirascope.core.google import google_call


@google_call("google-1.5-flash")
def recommend_book(genre: str) -> str:
    return f"Recommend a {genre} book"


response = recommend_book("fantasy")  # response is an `GoogleCallResponse` instance
print(response.content)
```

**Bases:** 
<TypeLink type={{"type_str": "BaseCallResponse[GenerateContentResponse, GoogleTool, Tool, GoogleDynamicConfig, ContentListUnion | ContentListUnionDict, GoogleCallParams, ContentDict, GoogleMessageParamConverter]", "description": null, "kind": "generic", "base_type": {"type_str": "BaseCallResponse", "description": null, "kind": "simple", "doc_url": "/docs/v1/api/core/base/call_response#basecallresponse"}, "parameters": [{"type_str": "GenerateContentResponse", "description": null, "kind": "simple", "doc_identifier": "GenerateContentResponse"}, {"type_str": "GoogleTool", "description": null, "kind": "simple", "doc_url": "/docs/v1/api/core/google/tool#googletool"}, {"type_str": "Tool", "description": null, "kind": "simple", "doc_url": "/docs/v1/api/llm/tool#tool"}, {"type_str": "GoogleDynamicConfig", "description": null, "kind": "simple", "doc_url": "/docs/v1/api/core/google/dynamic_config#googledynamicconfig"}, {"type_str": "ContentListUnion | ContentListUnionDict", "description": null, "kind": "union", "base_type": {"type_str": "Union", "description": null, "kind": "simple", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"}, "parameters": [{"type_str": "ContentListUnion", "description": null, "kind": "simple", "doc_identifier": "ContentListUnion"}, {"type_str": "ContentListUnionDict", "description": null, "kind": "simple", "doc_identifier": "ContentListUnionDict"}]}, {"type_str": "GoogleCallParams", "description": null, "kind": "simple", "doc_url": "/docs/v1/api/core/google/call_params#googlecallparams"}, {"type_str": "ContentDict", "description": null, "kind": "simple", "doc_identifier": "ContentDict"}, {"type_str": "GoogleMessageParamConverter", "description": null, "kind": "simple", "doc_identifier": "GoogleMessageParamConverter"}]}} />

<AttributesTable
  attributes={[
  {
    "name": "content",
    "type_info": {
      "type_str": "str",
      "description": null,
      "kind": "simple",
      "doc_url": "https://docs.python.org/3/library/stdtypes.html#str"
    },
    "description": "Returns the contained string content for the 0th choice."
  },
  {
    "name": "finish_reasons",
    "type_info": {
      "type_str": "list[str]",
      "description": null,
      "kind": "generic",
      "base_type": {
        "type_str": "list",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/stdtypes.html#list"
      },
      "parameters": [
        {
          "type_str": "str",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/stdtypes.html#str"
        }
      ]
    },
    "description": "Returns the finish reasons of the response."
  },
  {
    "name": "model",
    "type_info": {
      "type_str": "str",
      "description": null,
      "kind": "simple",
      "doc_url": "https://docs.python.org/3/library/stdtypes.html#str"
    },
    "description": "Returns the model name.\n\ngoogle.generativeai does not return model, so we return the model provided by\nthe user."
  },
  {
    "name": "id",
    "type_info": {
      "type_str": "str | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "str",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/stdtypes.html#str"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the id of the response.\n\ngoogle.generativeai does not return an id"
  },
  {
    "name": "usage",
    "type_info": {
      "type_str": "GenerateContentResponseUsageMetadata | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "GenerateContentResponseUsageMetadata",
          "description": null,
          "kind": "simple",
          "doc_identifier": "GenerateContentResponseUsageMetadata"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the usage of the chat completion.\n\ngoogle.generativeai does not have Usage, so we return None"
  },
  {
    "name": "input_tokens",
    "type_info": {
      "type_str": "int | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "int",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/functions.html#int"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the number of input tokens."
  },
  {
    "name": "cached_tokens",
    "type_info": {
      "type_str": "int | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "int",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/functions.html#int"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the number of cached tokens."
  },
  {
    "name": "output_tokens",
    "type_info": {
      "type_str": "int | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "int",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/functions.html#int"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the number of output tokens."
  },
  {
    "name": "message_param",
    "type_info": {
      "type_str": "ContentDict",
      "description": null,
      "kind": "simple",
      "doc_identifier": "ContentDict"
    },
    "description": "Returns the models's response as a message parameter."
  },
  {
    "name": "tools",
    "type_info": {
      "type_str": "list[GoogleTool] | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "list[GoogleTool]",
          "description": null,
          "kind": "generic",
          "base_type": {
            "type_str": "list",
            "description": null,
            "kind": "simple",
            "doc_url": "https://docs.python.org/3/library/stdtypes.html#list"
          },
          "parameters": [
            {
              "type_str": "GoogleTool",
              "description": null,
              "kind": "simple",
              "doc_url": "/docs/v1/api/core/google/tool#googletool"
            }
          ]
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the list of tools for the response."
  },
  {
    "name": "tool",
    "type_info": {
      "type_str": "GoogleTool | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "GoogleTool",
          "description": null,
          "kind": "simple",
          "doc_url": "/docs/v1/api/core/google/tool#googletool"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    },
    "description": "Returns the 0th tool for the 0th candidate's 0th content part."
  },
  {
    "name": "common_finish_reasons",
    "type_info": {
      "type_str": "list[FinishReason] | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "list[FinishReason]",
          "description": null,
          "kind": "generic",
          "base_type": {
            "type_str": "list",
            "description": null,
            "kind": "simple",
            "doc_url": "https://docs.python.org/3/library/stdtypes.html#list"
          },
          "parameters": [
            {
              "type_str": "FinishReason",
              "description": null,
              "kind": "simple",
              "doc_url": "/docs/v1/api/core/openai/call_response_chunk#finishreason"
            }
          ]
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    }
  },
  {
    "name": "common_message_param",
    "type_info": {
      "type_str": "BaseMessageParam",
      "description": null,
      "kind": "simple",
      "doc_url": "/docs/v1/api/core/base/message_param#basemessageparam"
    }
  },
  {
    "name": "common_user_message_param",
    "type_info": {
      "type_str": "BaseMessageParam | None",
      "description": null,
      "kind": "union",
      "base_type": {
        "type_str": "Union",
        "description": null,
        "kind": "simple",
        "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union"
      },
      "parameters": [
        {
          "type_str": "BaseMessageParam",
          "description": null,
          "kind": "simple",
          "doc_url": "/docs/v1/api/core/base/message_param#basemessageparam"
        },
        {
          "type_str": "None",
          "description": null,
          "kind": "simple",
          "doc_url": "https://docs.python.org/3/library/constants.html#None"
        }
      ]
    }
  },
  {
    "name": "cost_metadata",
    "type_info": {
      "type_str": "CostMetadata",
      "description": null,
      "kind": "simple",
      "doc_url": "/docs/v1/api/core/base/types#costmetadata"
    }
  }
]}
/>

## <ApiType type="Function" path="core/google/call_response" symbolName="tool_message_params" /> tool_message_params

Returns the tool message parameters for tool call results.

<ParametersTable
  parameters={[
  {
    "name": "cls",
    "type_info": {
      "type_str": "Any",
      "description": null,
      "kind": "simple",
      "doc_identifier": null
    }
  },
  {
    "name": "tools_and_outputs",
    "type_info": {
      "type_str": "Sequence[tuple[GoogleTool, str]]",
      "description": null,
      "kind": "generic",
      "base_type": {
        "type_str": "Sequence",
        "description": null,
        "kind": "simple",
        "doc_identifier": "Sequence"
      },
      "parameters": [
        {
          "type_str": "tuple[GoogleTool, str]",
          "description": null,
          "kind": "generic",
          "base_type": {
            "type_str": "tuple",
            "description": null,
            "kind": "simple",
            "doc_url": "https://docs.python.org/3/library/stdtypes.html#tuple"
          },
          "parameters": [
            {
              "type_str": "GoogleTool",
              "description": null,
              "kind": "simple",
              "doc_url": "/docs/v1/api/core/google/tool#googletool"
            },
            {
              "type_str": "str",
              "description": null,
              "kind": "simple",
              "doc_url": "https://docs.python.org/3/library/stdtypes.html#str"
            }
          ]
        }
      ]
    },
    "description": "The sequence of tools and their outputs from which the tool\nmessage parameters should be constructed."
  }
]}
/>

<ReturnTable
  returnType={{
  "type_info": {
    "type_str": "list[ContentDict]",
    "description": null,
    "kind": "generic",
    "base_type": {
      "type_str": "list",
      "description": null,
      "kind": "simple",
      "doc_url": "https://docs.python.org/3/library/stdtypes.html#list"
    },
    "parameters": [
      {
        "type_str": "ContentDict",
        "description": null,
        "kind": "simple",
        "doc_identifier": "ContentDict"
      }
    ]
  },
  "description": "The list of constructed `FunctionResponse` parameters."
}}
/>



