Migrate from Custom Search Site Restricted JSON API
Stay organized with collectionsSave and categorize content based on your preferences.
If you use theCustom Search Site Restricted JSON APIof Programmable Search Engine, you can create and
deploy Google-quality, site-restricted search in minutes, using
Vertex AI Search. To deploy your app, you can use thesearch
widgetby copying code from the Google Cloud console directly into a
web page—no coding required. Or, you can implement an API
deployment to have control over how search functionality looks on your website.
For more information about using the API, see the REST tab ofGet search
results for an app with website dataand theservingConfigs.searchmethod in the REST reference.
In addition to the standard short snippets that
Vertex AI Search returns with search results, you can add
advanced features to your search. These include generatedsummariesof search results,search with follow-upsfor context-aware search that allows follow-up questions,
andextractive answersfor extracted text returned with
each search result. Getting these advanced features for your web search requiresdomain verificationand incurs additional indexing costs.
You can alsofilterororderyour
search results and applypromote controlsto display a link as a promoted result.
On theCreate Apppage, underSite search with AI mode, clickCreate.
Make sureEnterprise edition featuresis turned on. This is required
for website search. For more information, seeEnterprise edition
features.
Turn offAdvanced LLM features. Turning this off gives you
functionality similar to the Custom Search Site Restricted JSON API of
Programmable Search Engine. Turn this off if you don't need search
summarization or search with follow-ups. For more information, seeAdvanced LLM features.
In theYour app namefield, enter a name for your app.
In theExternal name of your company or organizationfield, enter
the common name for your company or organization.
Selectglobal (Global)as the location for your app, and then clickContinue.
On theData Storespage, clickCreate data store.
In theSelect a data sourcepane, selectWebsite Content.
Turn offAdvanced website indexingindexing. Turning this off gives
you functionality similar to the Custom Search Site Restricted JSON API
of Programmable Search Engine. Turn this off if you don't need search
summarization or search with follow-ups, or if you don't own the
domains that you specify. For more information, seeAdvanced website indexing.
In theSpecify URL patterns to indexpane, in theSites
to includefield, enter the URL patterns of the websites that you want
to search, and then clickContinue.
In theConfigure your data storepane, enter a display name for your
data store, and then clickCreate.
On theData Storespage, select your new data store, and then clickCreate.
Deploy the search app
Decide how you plan to authenticate your Vertex AI Search search
app: using OAuth 2.0 or an API key. For information about the advantages and
disadvantages of each method, seeAbout
authentication.
If you're not already in your project, in the project list at the top of
the Google Cloud console page, select your project.
ClickCreate credentialsand then selectAPI key.Don't add any referrer restrictions. Some user privacy settings don't
pass the referrer URL.
Take note of the generated API key, which you will use when calling
thesearchLitemethod.
For increased security, add anHTTP restrictionto your API Key to restrict access to the AI Applications service
athttps://discoveryengine.googleapis.com/*.
TheCustom Search Site Restricted JSON APIof
Programmable Search Engine authenticates using an API key. While, with a
couple of exceptions, Vertex AI Search requires OAuth 2.0.
If you want to carry on using an API key for authentication, then you need to
use thesearchLitemethod through API calls.
If you choose to authenticate through OAuth 2.0, then you need to use thesearchmethod and theanswermethod to query
your website, furthermore, you can deploy your search app through the no-code
search widget.
The following table lists differences between using thesearchLitemethod with
API key authentication and thesearchandanswermethods with OAuth 2.0
authentication.
[[["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-09-04 UTC."],[[["\u003cp\u003eVertex AI Search enables the creation of site-restricted search functionality, similar to the Custom Search Site Restricted JSON API, with options for both widget-based and API-driven deployment.\u003c/p\u003e\n"],["\u003cp\u003eAdvanced features such as generated summaries, follow-up questions, and extractive answers are available, although they require domain verification and incur additional indexing costs.\u003c/p\u003e\n"],["\u003cp\u003eYou can refine search results through filtering, ordering, and promoting specific links, providing greater control over how information is presented to users.\u003c/p\u003e\n"],["\u003cp\u003eDeploying Vertex AI Search can be done using either OAuth 2.0 or an API key, with OAuth 2.0 supporting the search widget, while API key authentication requires the use of the \u003ccode\u003esearchLite\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eSetting up a website search app involves a series of steps in the Agent Builder console, including selecting website content as the data source and specifying the URL patterns to index.\u003c/p\u003e\n"]]],[],null,["# Migrate from Custom Search Site Restricted JSON API\n\nIf you use the [Custom Search Site Restricted JSON API](https://developers.google.com/custom-search/v1/site_restricted_api) of Programmable Search Engine, you can create and\ndeploy Google-quality, site-restricted search in minutes, using\nVertex AI Search. To deploy your app, you can use the [search\nwidget](/generative-ai-app-builder/docs/add-widget) by copying code from the Google Cloud console directly into a\nweb page---no coding required. Or, you can implement an API\ndeployment to have control over how search functionality looks on your website.\nFor more information about using the API, see the REST tab of [Get search\nresults for an app with website data](/generative-ai-app-builder/docs/preview-search-results#web) and the\n[`servingConfigs.search`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.engines.servingConfigs/search) method in the REST reference.\n\nIn addition to the standard short snippets that\nVertex AI Search returns with search results, you can add\nadvanced features to your search. These include generated\n[summaries](/generative-ai-app-builder/docs/get-search-summaries) of search results, [search with follow-ups](/generative-ai-app-builder/docs/answer#commands_for_follow-up_questions) for context-aware search that allows follow-up questions,\nand [extractive answers](/generative-ai-app-builder/docs/snippets#extractive-answers) for extracted text returned with\neach search result. Getting these advanced features for your web search requires\n[domain verification](/generative-ai-app-builder/docs/domain-verification) and incurs additional indexing costs.\n\nYou can also [filter](/generative-ai-app-builder/docs/filter-website-search#filter-expressions-basic-indexing) or [order](/generative-ai-app-builder/docs/order-web-search-results#basic-indexing) your\nsearch results and apply [promote controls](/generative-ai-app-builder/docs/configure-serving-controls#promote) to display a link as a promoted result.\n\nFor more information, see the [AI Applications pricing](/generative-ai-app-builder/pricing) page.\n\nSet up Vertex AI Search\n-----------------------\n\nTo set up Vertex AI Search, follow these steps:\n\n1. In the Google Cloud console, on the [project selector\n page](https://console.cloud.google.com/projectselector2/home/dashboard), select the project that you've been\n using for the Custom Search Site Restricted JSON API.\n\n2. [Turn on AI Applications](/generative-ai-app-builder/docs/before-you-begin#turn-on-discovery-engine).\n\nCreate a search app\n-------------------\n\nTo create a search app, follow these steps:\n\n1. In the Google Cloud console, go to the **AI Applications** page.\n\n [AI Applications](https://console.cloud.google.com/gen-app-builder/engines)\n2. Click **Create app**.\n\n3. On the **Create App** page, under **Site search with AI mode** , click\n **Create**.\n\n4. Make sure **Enterprise edition features** is turned on. This is required\n for website search. For more information, see [Enterprise edition\n features](/generative-ai-app-builder/docs/about-advanced-features#enterprise-features).\n\n5. Turn off **Advanced LLM features** . Turning this off gives you\n functionality similar to the Custom Search Site Restricted JSON API of\n Programmable Search Engine. Turn this off if you don't need search\n summarization or search with follow-ups. For more information, see\n [Advanced LLM features](/generative-ai-app-builder/docs/about-advanced-features#advanced-llm-features).\n\n6. In the **Your app name** field, enter a name for your app.\n\n7. In the **External name of your company or organization** field, enter\n the common name for your company or organization.\n\n8. Select **global (Global)** as the location for your app, and then click\n **Continue**.\n\n9. On the **Data Stores** page, click **Create data store**.\n\n10. In the **Select a data source** pane, select **Website Content**.\n\n11. Turn off **Advanced website indexing** indexing. Turning this off gives\n you functionality similar to the Custom Search Site Restricted JSON API\n of Programmable Search Engine. Turn this off if you don't need search\n summarization or search with follow-ups, or if you don't own the\n domains that you specify. For more information, see\n [Advanced website indexing](/generative-ai-app-builder/docs/about-advanced-features#advanced-website-indexing).\n\n12. In the **Specify URL patterns to index** pane, in the **Sites\n to include** field, enter the URL patterns of the websites that you want\n to search, and then click **Continue**.\n\n13. In the **Configure your data store** pane, enter a display name for your\n data store, and then click **Create**.\n\n14. On the **Data Stores** page, select your new data store, and then click\n **Create**.\n\nDeploy the search app\n---------------------\n\nDecide how you plan to authenticate your Vertex AI Search search\napp: using OAuth 2.0 or an API key. For information about the advantages and\ndisadvantages of each method, see [About\nauthentication](#about-authentication).\n\n- [To deploy the search app with OAuth 2.0](#oauth-deploy)\n\n- [To deploy the search app with an API key](#api-key-deploy)\n\n### Deploy the search app (OAuth 2.0)\n\nTo deploy your search app using OAuth 2.0 authentication, follow these steps:\n\n1. To set up OAuth 2.0, see [On Google Cloud](/generative-ai-app-builder/docs/authentication#on-gcp) in *Authenticate to\n AI Applications* . Make sure to add the [Discovery Engine\n User](/generative-ai-app-builder/docs/access-control#discoveryengine.user) or the [Discovery Engine\n Viewer](/generative-ai-app-builder/docs/access-control#discoveryengine.viewer) role to the service account.\n\n2. Deploy your search app in one of the following ways:\n\n - **Use the search widget.** Deploy your search\n app with no coding required. For more information, see\n [Add the search widget to a web page](/generative-ai-app-builder/docs/add-widget).\n\n - **Use the API.** Use the API to control how search functionality looks on\n your website. For more information, see the REST tab of [Get search\n results for an app with website data](/generative-ai-app-builder/docs/preview-search-results#web) and the\n [`servingConfigs.search`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.engines.servingConfigs/search) method in the REST reference. To\n order the results of your web search queries, see [Order web search\n results](/generative-ai-app-builder/docs/order-web-search-results).\n\n### Deploy the search app (API key)\n\nTo deploy your search app using an API key for authentication, follow these\nsteps:\n\n1. Create the API key:\n\n 1. In the Google Cloud console, go to the **Credentials** page.\n\n [Credentials](https://console.cloud.google.com/apis/credentials)\n 2. If you're not already in your project, in the project list at the top of\n the Google Cloud console page, select your project.\n\n 3. Click **Create credentials** and then select **API key** .\n *Don't add any referrer restrictions*. Some user privacy settings don't\n pass the referrer URL.\n\n - Take note of the generated API key, which you will use when calling the `searchLite` method.\n 4. For increased security, add an\n [HTTP restriction](/docs/authentication/api-keys#api_key_restrictions)\n to your API Key to restrict access to the AI Applications service\n at `https://discoveryengine.googleapis.com/*`.\n\n2. Deploy your search app using the API.\n See [Get search results for an app with website data (API\n key)](/generative-ai-app-builder/docs/preview-search-results#web-api-key) and the\n [`servingConfigs.searchLite`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.engines.servingConfigs/searchLite) method in the\n REST reference. To order the results of your web search queries, see [Order\n web search results](/generative-ai-app-builder/docs/order-web-search-results).\n\nAbout authentication\n--------------------\n\nThe [Custom Search Site Restricted JSON API](https://developers.google.com/custom-search/v1/site_restricted_api) of\nProgrammable Search Engine authenticates using an API key. While, with a\ncouple of exceptions, Vertex AI Search requires OAuth 2.0.\nIf you want to carry on using an API key for authentication, then you need to\nuse the [`searchLite`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.collections.engines.servingConfigs/searchLite) method through API calls.\n\nIf you choose to authenticate through OAuth 2.0, then you need to use the\n[`search`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.dataStores.servingConfigs/search) method and the [`answer`](/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.dataStores.servingConfigs/answer) method to query\nyour website, furthermore, you can deploy your search app through the no-code\nsearch widget.\n\nThe following table lists differences between using the `searchLite` method with\nAPI key authentication and the `search` and `answer` methods with OAuth 2.0\nauthentication.\n\nNext steps\n----------\n\n- If you need to filter the search results, see [Filter expressions\n for basic website search](/generative-ai-app-builder/docs/filter-website-search#filter-expressions-basic-indexing).\n\n- If you need to provide image search, see [Search for images on\n websites](/generative-ai-app-builder/docs/image-search).\n\n- If you need to order the search results, for example by date, see [Order\n search results for basic website search](/generative-ai-app-builder/docs/order-web-search-results#basic-indexing).\n\n- If you need multi-turn search, see [Commands for follow-up\n questions](/generative-ai-app-builder/docs/answer#commands_for_follow-up_questions)."]]