Method: media.upload
Stay organized with collections
Save and categorize content based on your preferences.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-04-04 UTC.
[null,null,["Last updated 2025-04-04 UTC."],[],[],null,["# Method: media.upload\n\n- [HTTP request](#body.HTTP_TEMPLATE)\n- [Path parameters](#body.PATH_PARAMETERS)\n- [Request body](#body.request_body)\n- [Response body](#body.response_body)\n - [JSON representation](#body.Media.SCHEMA_REPRESENTATION)\n- [Authorization scopes](#body.aspect)\n- [Try it!](#try-it)\n\nUploads media for indexing.\n\nThe upload endpoint supports direct and resumable upload protocols and is intended for large items that can not be [inlined during index requests](https://developers.google.com/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#itemcontent). To index large content:\n\n1. Call [indexing.datasources.items.upload](/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items/upload#google.apps.search.v1.ItemsService.StartUploadItem) with the item name to begin an upload session and retrieve the [UploadItemRef](/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items#UploadItemRef).\n2. Call media.upload to upload the content, as a streaming request, using the same resource name from the UploadItemRef from step 1.\n3. Call [indexing.datasources.items.index](/workspace/cloud-search/docs/reference/rest/v1/indexing.datasources.items/index_#google.apps.search.v1.ItemsService.IndexItem) to index the item. Populate the [ItemContent](/cloud-search/docs/reference/rest/v1/indexing.datasources.items#ItemContent) with the UploadItemRef from step 1.\n\nFor additional information, see [Create a content connector using the REST API](https://developers.google.com/workspace/cloud-search/docs/guides/content-connector#rest).\n\n**Note:** This API requires a service account to execute.\n\n### HTTP request\n\n- Upload URI, for media upload requests: \n `POST https://cloudsearch.googleapis.com/upload/v1/media/{resourceName=**}`\n- Metadata URI, for metadata-only requests: \n `POST https://cloudsearch.googleapis.com/v1/media/{resourceName=**}`\n\nThe URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.\n\n### Path parameters\n\n| Parameters ||\n|----------------|---------------------------------------------------------------------------------------|\n| `resourceName` | `string` Name of the media that is being downloaded. See `ReadRequest.resource_name`. |\n\n### Request body\n\nThe request body contains an instance of [Media](/workspace/cloud-search/docs/reference/rest/v1/media/upload#body.Media).\n\n### Response body\n\nMedia resource.\n\nIf successful, the response body contains data with the following structure:\n\n| JSON representation |\n|------------------------------------|\n| ``` { \"resourceName\": string } ``` |\n\n| Fields ||\n|----------------|--------------------------------------|\n| `resourceName` | `string` Name of the media resource. |\n\n### Authorization scopes\n\nRequires one of the following OAuth scopes:\n\n- `https://www.googleapis.com/auth/cloud_search.indexing`\n- `https://www.googleapis.com/auth/cloud_search`\n\nFor more information, see the [Authorization guide](/workspace/guides/configure-oauth-consent)."]]