Stay organized with collections
Save and categorize content based on your preferences.
Reporting usage with labels (Advanced)
The Cloud Translation API supports adding user-defined labels (key-value pairs)
to TranslateText, BatchTranslateText and DetectLanguage requests.
Information about a request's usage is forwarded to the billing system where
you can break down your billing charges by filtering by label.
Use case
An important use case for labels involves customers who provide translation
services to many clients. A single project can be used for multiple clients. For
billing purposes it's important to associate specific requests with their
respective clients. That's where labels come in. When making a call on behalf of
a client, you label the request with a client specific label. These labels are
then available for filtering purposes in the Reports section of
the Google Cloud.
Requirements for labels
The labels applied to a request must meet the following requirements:
Each request can have multiple labels, up to a maximum of 64.
Each label must be a key-value pair.
Keys have a minimum length of 1 character and a maximum length of 63
characters, and cannot be empty. Values can be empty, and have a maximum
length of 63 characters.
Keys and values contain only lowercase letters, numeric characters,
underscores, and dashes. All characters must use UTF-8 encoding, and
international characters are allowed.
The key portion of a label must be unique within a single request (for
example, {'country':'india'} is fine, but {'country':'india','country':'sweden'}
is not allowed).
Keys must start with a lowercase letter or international character.
Labels and billing
In Cloud Translation, you can use labels to organize fees
by billing account. You aren't changed for the use of Cloud Translation
labels.
Fees are associated with the billing account of the project that contains the
request. Or, if a custom or Neural Machine Translation (NMT) model is used, fees
are associated with the project that contains the
model.
For billing purposes, all billable requests can have labels of their own. These
billable requests include batch translation, detect language, and translate
text.
Creating and managing labels using the Cloud Translation API
Use the Cloud Translation API to add labels to a request.
REST
In the following example, the labels {'country':'russia'},{'env':'test'} are added
to the translateText request.
Before using any of the request data,
make the following replacements:
PROJECT_NUMBER_OR_ID: the numeric or alphanumeric ID of your Google Cloud project
HTTP method and URL:
POST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID:translateText
Go to the Google Cloud
billing console Reports view to use these labels as filters for request
usage.
From the dashboard, click the hamburger icon on the upper left-hand side and select "Billing"
from the drop-down. If you have multiple billing accounts a page appears that
asks you to make a selection. Click "Go to linked billing account."
From the Billing page, select Reports in the left-hand nav.
Use the filters in the right-hand nav to check usage of requests.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Reporting usage with labels (Advanced)\n======================================\n\nThe Cloud Translation API supports adding user-defined labels (key-value pairs)\nto `TranslateText`, `BatchTranslateText` and `DetectLanguage` requests.\nInformation about a request's usage is forwarded to the billing system where\nyou can break down your billing charges by filtering by label.\n\nUse case\n--------\n\nAn important use case for labels involves customers who provide translation\nservices to many clients. A single project can be used for multiple clients. For\nbilling purposes it's important to associate specific requests with their\nrespective clients. That's where labels come in. When making a call on behalf of\na client, you label the request with a client specific label. These labels are\nthen available for filtering purposes in the **Reports** section of\nthe Google Cloud.\n\nRequirements for labels\n-----------------------\n\nThe labels applied to a request must meet the following requirements:\n\n- Each request can have multiple labels, up to a maximum of 64.\n- Each label must be a key-value pair.\n- Keys have a minimum length of 1 character and a maximum length of 63 characters, and cannot be empty. Values can be empty, and have a maximum length of 63 characters.\n- Keys and values contain only lowercase letters, numeric characters, underscores, and dashes. All characters must use UTF-8 encoding, and international characters are allowed.\n- The key portion of a label must be unique within a single request (for example, `{'country':'india'}` is fine, but `{'country':'india','country':'sweden'}` is not allowed).\n- Keys must start with a lowercase letter or international character.\n\nLabels and billing\n------------------\n\nIn Cloud Translation, you can use labels to organize [fees](/translate/pricing)\nby billing account. You aren't changed for the use of Cloud Translation\nlabels.\n\nFees are associated with the billing account of the project that contains the\nrequest. Or, if a custom or Neural Machine Translation (NMT) model is used, fees\nare associated with the [project that contains the\nmodel](/translate/pricing#charged-projects).\n\nFor billing purposes, all billable requests can have labels of their own. These\nbillable requests include batch translation, detect language, and translate\ntext.\n\nCreating and managing labels using the Cloud Translation API\n------------------------------------------------------------\n\nUse the Cloud Translation API to add labels to a request.\n\n\n### REST\n\nIn the following example, the labels `{'country':'russia'}`,`{'env':'test'}` are added to the `translateText` request.\n\n\nBefore using any of the request data,\nmake the following replacements:\n\n- \u003cvar translate=\"no\"\u003ePROJECT_NUMBER_OR_ID\u003c/var\u003e: the numeric or alphanumeric ID of your Google Cloud project\n\n\nHTTP method and URL:\n\n```\nPOST https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID:translateText\n```\n\n\nRequest JSON body:\n\n```\n{\n source_language_code: 'en',\n target_language_code: 'ru',\n contents: 'Dr. Watson, come here!',\n labels: {'country':'russia','env':'test'}\n}\n\n```\n\nTo send your request, expand one of these options:\n\n#### curl (Linux, macOS, or Cloud Shell)\n\n| **Note:** The following command assumes that you have logged in to the `gcloud` CLI with your user account by running [`gcloud init`](/sdk/gcloud/reference/init) or [`gcloud auth login`](/sdk/gcloud/reference/auth/login) , or by using [Cloud Shell](/shell/docs), which automatically logs you into the `gcloud` CLI . You can check the currently active account by running [`gcloud auth list`](/sdk/gcloud/reference/auth/list).\n\n\nSave the request body in a file named `request.json`,\nand execute the following command:\n\n```\ncurl -X POST \\\n -H \"Authorization: Bearer $(gcloud auth print-access-token)\" \\\n -H \"x-goog-user-project: PROJECT_NUMBER_OR_ID\" \\\n -H \"Content-Type: application/json; charset=utf-8\" \\\n -d @request.json \\\n \"https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID:translateText\"\n```\n\n#### PowerShell (Windows)\n\n| **Note:** The following command assumes that you have logged in to the `gcloud` CLI with your user account by running [`gcloud init`](/sdk/gcloud/reference/init) or [`gcloud auth login`](/sdk/gcloud/reference/auth/login) . You can check the currently active account by running [`gcloud auth list`](/sdk/gcloud/reference/auth/list).\n\n\nSave the request body in a file named `request.json`,\nand execute the following command:\n\n```\n$cred = gcloud auth print-access-token\n$headers = @{ \"Authorization\" = \"Bearer $cred\"; \"x-goog-user-project\" = \"PROJECT_NUMBER_OR_ID\" }\n\nInvoke-WebRequest `\n -Method POST `\n -Headers $headers `\n -ContentType: \"application/json; charset=utf-8\" `\n -InFile request.json `\n -Uri \"https://translation.googleapis.com/v3/projects/PROJECT_NUMBER_OR_ID:translateText\" | Select-Object -Expand Content\n```\n\nYou should receive a JSON response similar to the following:\n\n```\n{\n \"translations\": [\n {\n \"translatedText\": \"Доктор Ватсон, иди сюда!\"\n }\n ]\n}\n```\n\n\u003cbr /\u003e\n\nPricing report\n--------------\n\nGo to the [Google Cloud](https://console.cloud.google.com/billing)\nbilling console **Reports** view to use these labels as filters for request\nusage.\n\n1. From the dashboard, click the hamburger icon on the upper left-hand side and select \"Billing\" from the drop-down. If you have multiple billing accounts a page appears that asks you to make a selection. Click \"Go to linked billing account.\"\n2. From the Billing page, select **Reports** in the left-hand nav.\n3. Use the filters in the right-hand nav to check usage of requests."]]