Migrate from Custom Search Site Restricted JSON API
Stay organized with collections
Save and categorize content based on your preferences.
If you use the Custom Search Site Restricted JSON API of 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 the search
widget by 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 of Get search
results for an app with website data and the
servingConfigs.search method 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 generated
summaries of search results, search with follow-ups for context-aware search that allows follow-up questions,
and extractive answers for extracted text returned with
each search result. Getting these advanced features for your web search requires
domain verification and incurs additional indexing costs.
You can also filter or order your
search results and apply promote controls to display a link as a promoted result.
On the Create App page, under Site search with AI mode, click
Create.
Make sure Enterprise edition features is turned on. This is required
for website search. For more information, see Enterprise edition
features.
Turn off Advanced 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, see
Advanced LLM features.
In the Your app name field, enter a name for your app.
In the External name of your company or organization field, enter
the common name for your company or organization.
Select global (Global) as the location for your app, and then click
Continue.
On the Data Stores page, click Create data store.
In the Select a data source pane, select Website Content.
Turn off Advanced website indexing indexing. 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, see
Advanced website indexing.
In the Specify URL patterns to index pane, in the Sites
to include field, enter the URL patterns of the websites that you want
to search, and then click Continue.
In the Configure your data store pane, enter a display name for your
data store, and then click Create.
On the Data Stores page, select your new data store, and then click
Create.
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, see About
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.
Click Create credentials and then select API 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
the searchLite method.
For increased security, add an
HTTP restriction
to your API Key to restrict access to the AI Applications service
at https://discoveryengine.googleapis.com/*.
The Custom Search Site Restricted JSON API of
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 the searchLite method through API calls.
If you choose to authenticate through OAuth 2.0, then you need to use the
search method and the answer method to query
your website, furthermore, you can deploy your search app through the no-code
search widget.
The following table lists differences between using the searchLite method with
API key authentication and the search and answer methods 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-08-25 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)."]]