Count tokens
Count how many tokens some content uses.
/google/v1beta/models/{modelsId}:countTokens◐ PartialRequest parameters
modelstring必填path: Required. The model's resource name. This serves as an ID for the Model to use. This name should match a model name returned by the `ListModels` method. Format: `models/{model}`
contentsarray可选◐ Partially supportedOptional. The input given to the model as a prompt. This field is ignored when `generate_content_request` is set.
Forwarded natively or estimated locally. Sending both contents and generateContentRequest returns 400.
▸ 展开子字段(2)
partsarray可选Ordered `Parts` that constitute a single message. Parts may have different MIME types.
▸ 展开子字段(16)
audioTranscriptionobject可选Optional. Audio (input or output) transcription. This is only set when this Part contains audio data.
codeExecutionResultobject可选Result of executing the `ExecutableCode`.
executableCodeobject可选Code generated by the model that is meant to be executed.
fileDataobject可选URI based data.
functionCallobject可选A predicted `FunctionCall` returned from the model that contains a string representing the `FunctionDeclaration.name` with the arguments and their values.
functionResponseobject可选The result output of a `FunctionCall` that contains a string representing the `FunctionDeclaration.name` and a structured JSON object containing any output from the function is used as context to the model.
inlineDataobject可选◐ Partially supportedInline media bytes.
Forwarded natively. Local estimates inspect PNG/JPEG/GIF headers without treating base64 as text; other media uses approximate allowances.
mediaProcessingstring可选Optional. How the model processes this part's media for understanding. Only meaningful for video parts (`inline_data` or `file_data` with video mime). Non-video parts ignore this field.
mediaResolutionobject可选Optional. Media resolution for the input media.
partMetadataobject可选Custom metadata associated with the Part. Agents using genai.Part as content representation may need to keep track of the additional information. For example it can be name of a file/source from which the Part originates or a way to multiplex multiple Part streams.
textstring可选Inline text.
thoughtboolean可选Optional. Indicates if the part is thought from the model.
thoughtSignaturestring可选Optional. An opaque signature for the thought so it can be reused in subsequent requests.
toolCallobject可选Server-side tool call. This field is populated when the model predicts a tool invocation that should be executed on the server. The client is expected to echo this message back to the API.
toolResponseobject可选The output from a server-side `ToolCall` execution. This field is populated by the client with the results of executing the corresponding `ToolCall`.
videoMetadataobject可选Optional. Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data.
rolestring可选Optional. The producer of the content. Must be either 'user' or 'model'. Useful to set for multi-turn conversations, otherwise can be left blank or unset.
generateContentRequestobject可选◐ Partially supportedOptional. The overall input given to the `Model`. This includes the prompt as well as other model steering information like [system instructions](https://ai.google.dev/gemini-api/docs/system-instructions), and/or function declarations for [function calling](https://ai.google.dev/gemini-api/docs/function-calling). `Model`s/`Content`s and `generate_content_request`s are mutually exclusive. You can either send `Model` + `Content`s or a `generate_content_request`, but never both.
Native counting preserves systemInstruction and tools and maps the model; local counting includes them in estimates.
▸ 展开子字段(11)
cachedContentstring可选○ 未支持Optional. The name of the content [cached](https://ai.google.dev/gemini-api/docs/caching) to use as context to serve the prediction. Format: `cachedContents/{cachedContent}`
contentsarray可选Required. The content of the current conversation with the model. For single-turn queries, this is a single instance. For multi-turn queries like [chat](https://ai.google.dev/gemini-api/docs/text-generation#chat), this is a repeated field that contains the conversation history and the latest request.
generationConfigobject可选Optional. Configuration options for model generation and outputs.
labelsobject可选Optional. Labels with user-defined metadata for the request. Optional. Labels must follow standard unified Cloud label requirements: - Label keys must start with a letter. - Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. - International characters are allowed. Usage: - Safety identifiers from aggregators: Use the key `safety_identifier` (e.g. `{"safety_identifier": "user_session_123"}`)
modelstring可选Required. The name of the `Model` to use for generating the completion. Format: `models/{model}`.
safetySettingsarray可选Optional. A list of unique `SafetySetting` instances for blocking unsafe content. This will be enforced on the `GenerateContentRequest.contents` and `GenerateContentResponse.candidates`. There should not be more than one setting for each `SafetyCategory` type. The API will block any contents and responses that fail to meet the thresholds set by these settings. This list overrides the default settings for each `SafetyCategory` specified in the safety_settings. If there is no `SafetySetting` for a given `SafetyCategory` provided in the list, the API will use the default safety setting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH, HARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT, HARM_CATEGORY_HARASSMENT, HARM_CATEGORY_CIVIC_INTEGRITY, HARM_CATEGORY_JAILBREAK are supported. Refer to the [guide](https://ai.google.dev/gemini-api/docs/safety-settings) for detailed information on available safety settings. Also refer to the [Safety guidance](https://ai.google.dev/gemini-api/docs/safety-guidance) to learn how to incorporate safety considerations in your AI applications.
serviceTierstring可选Optional. The service tier of the request.
storeboolean可选Optional. Configures the logging behavior for a given request. If set, it takes precedence over the project-level logging config.
systemInstructionobject可选Optional. Developer set [system instruction(s)](https://ai.google.dev/gemini-api/docs/system-instructions). Currently, text only.
toolConfigobject可选Optional. Tool configuration for any `Tool` specified in the request. Refer to the [Function calling guide](https://ai.google.dev/gemini-api/docs/function-calling#function_calling_mode) for a usage example.
toolsarray可选Optional. A list of `Tools` the `Model` may use to generate the next response. A `Tool` is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the `Model`. Supported `Tool`s are `Function` and `code_execution`. Refer to the [Function calling](https://ai.google.dev/gemini-api/docs/function-calling) and the [Code execution](https://ai.google.dev/gemini-api/docs/code-execution) guides to learn more.
Returns
200
Returns a model-family-calibrated estimate, including Chinese text and tool definitions, with the response header x-praxis-token-count: estimated. Do not use it as an exact usage or billing count.
Errors follow the Gemini API format — see error codes
Response
HTTP 200
Successful response
application/json
| Name | Type | Description |
|---|---|---|
| cacheTokensDetails | array<object> | Output only. List of modalities that were processed in the cached content. |
| cacheTokensDetails[].modality | string | The modality associated with this token count. |
| cacheTokensDetails[].tokenCount | integer | Number of tokens. |
| cachedContentTokenCount | integer | Number of tokens in the cached part of the prompt (the cached content). |
| promptTokensDetails | array<object> | Output only. List of modalities that were processed in the request input. |
| promptTokensDetails[].modality | string | The modality associated with this token count. |
| promptTokensDetails[].tokenCount | integer | Number of tokens. |
| totalTokens | integer | The number of tokens that the `Model` tokenizes the `prompt` into. Always non-negative. |