Cloud Search API

Cloud Search provides cloud-based search capabilities over Google Workspace data. The Cloud Search API allows indexing of non-Google Workspace data into Cloud Search.


To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.

Discovery document

A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery document:

Service endpoint

A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:


REST Resource: v1

initializeCustomer POST /v1:initializeCustomer
Enables third party support in Google Cloud Search.

REST Resource: v1.debug.datasources.items

checkAccess POST /v1/debug/{name=datasources/*/items/*}:checkAccess
Checks whether an item is accessible by specified principal.
searchByViewUrl POST /v1/debug/{name=datasources/*}/items:searchByViewUrl
Fetches the item whose viewUrl exactly matches that of the URL provided in the request.

REST Resource: v1.debug.datasources.items.unmappedids

list GET /v1/debug/{parent=datasources/*/items/*}/unmappedids
List all unmapped identities for a specific item.

REST Resource: v1.debug.identitysources.items

listForunmappedidentity GET /v1/debug/{parent=identitysources/*}/items:forunmappedidentity
Lists names of items associated with an unmapped identity.

REST Resource: v1.debug.identitysources.unmappedids

list GET /v1/debug/{parent=identitysources/*}/unmappedids
Lists unmapped user identities for an identity source.

REST Resource: v1.indexing.datasources

deleteSchema DELETE /v1/indexing/{name=datasources/*}/schema
Deletes the schema of a data source.
getSchema GET /v1/indexing/{name=datasources/*}/schema
Gets the schema of a data source.
updateSchema PUT /v1/indexing/{name=datasources/*}/schema
Updates the schema of a data source.

REST Resource: v1.indexing.datasources.items

delete DELETE /v1/indexing/{name=datasources/*/items/*}
Deletes Item resource for the specified resource name.
deleteQueueItems POST /v1/indexing/{name=datasources/*}/items:deleteQueueItems
Deletes all items in a queue.
get GET /v1/indexing/{name=datasources/*/items/*}
Gets Item resource by item name.
index POST /v1/indexing/{*/items/*}:index
Updates Item ACL, metadata, and content.
list GET /v1/indexing/{name=datasources/*}/items
Lists all or a subset of Item resources.
poll POST /v1/indexing/{name=datasources/*}/items:poll
Polls for unreserved items from the indexing queue and marks a set as reserved, starting with items that have the oldest timestamp from the highest priority ItemStatus.
push POST /v1/indexing/{*/items/*}:push
Pushes an item onto a queue for later polling and updating.
unreserve POST /v1/indexing/{name=datasources/*}/items:unreserve
Unreserves all items from a queue, making them all eligible to be polled.
upload POST /v1/indexing/{name=datasources/*/items/*}:upload
Creates an upload session for uploading item content.

REST Resource:

upload POST /v1/media/{resourceName=**}
POST /upload/v1/media/{resourceName=**}
Uploads media for indexing.

REST Resource: v1.operations

get GET /v1/{name=operations/**}
Gets the latest state of a long-running operation.

REST Resource: v1.query

search POST /v1/query/search
The Cloud Search Query API provides the search method, which returns the most relevant results from a user query.
suggest POST /v1/query/suggest
Provides suggestions for autocompleting the query.

REST Resource: v1.query.sources

list GET /v1/query/sources
Returns list of sources that user can use for Search and Suggest APIs.

REST Resource: v1.settings

getCustomer GET /v1/settings/customer
Get customer settings.
updateCustomer PATCH /v1/settings/customer
Update customer settings.

REST Resource: v1.settings.datasources

create POST /v1/settings/datasources
Creates a datasource.
delete DELETE /v1/settings/{name=datasources/*}
Deletes a datasource.
get GET /v1/settings/{name=datasources/*}
Gets a datasource.
list GET /v1/settings/datasources
Lists datasources.
patch PATCH /v1/settings/{*}
Updates a datasource.
update PUT /v1/settings/{*}
Updates a datasource.

REST Resource: v1.settings.searchapplications

create POST /v1/settings/searchapplications
Creates a search application.
delete DELETE /v1/settings/{name=searchapplications/*}
Deletes a search application.
get GET /v1/settings/{name=searchapplications/*}
Gets the specified search application.
list GET /v1/settings/searchapplications
Lists all search applications.
patch PATCH /v1/settings/{*}
Updates a search application.
reset POST /v1/settings/{name=searchapplications/*}:reset
Resets a search application to default settings.
update PUT /v1/settings/{*}
Updates a search application.

REST Resource: v1.stats

getIndex GET /v1/stats/index
Gets indexed item statistics aggreggated across all data sources.
getQuery GET /v1/stats/query
Get the query statistics for customer.
getSearchapplication GET /v1/stats/searchapplication
Get search application stats for customer.
getSession GET /v1/stats/session
Get the # of search sessions, % of successful sessions with a click query statistics for customer.
getUser GET /v1/stats/user
Get the users statistics for customer.

REST Resource: v1.stats.index.datasources

get GET /v1/stats/index/{name=datasources/*}
Gets indexed item statistics for a single data source.

REST Resource: v1.stats.query.searchapplications

get GET /v1/stats/query/{name=searchapplications/*}
Get the query statistics for search application.

REST Resource: v1.stats.session.searchapplications

get GET /v1/stats/session/{name=searchapplications/*}
Get the # of search sessions, % of successful sessions with a click query statistics for search application.

REST Resource: v1.stats.user.searchapplications

get GET /v1/stats/user/{name=searchapplications/*}
Get the users statistics for search application.