{
  "name": "Google Programmable Search Engine (Custom Search JSON API)",
  "slug": "google-custom-search",
  "website_url": "https://developers.google.com/custom-search/v1/overview",
  "vendor_description": "\"The Custom Search JSON API lets you develop websites and applications to retrieve and display search results from Programmable Search Engine programmatically.\"",
  "categories": [
    "web-search"
  ],
  "summary": "Google Programmable Search Engine (Custom Search JSON API) lets developers embed Google web and image search results into applications via a REST API authenticated with an API key, with SDKs available for seven languages including Python, Java, and Go. Pricing starts at $5 per 1,000 queries, with a free tier of 100 queries per day and a hard ceiling of 10,000 paid queries per day. The API is closed to new customers, and existing users must migrate to an alternative solution by January 1, 2027.",
  "capabilities": {
    "supported_actions": [
      "web_search (cse.list GET /customsearch/v1)",
      "image_search (cse.list with searchType=image)",
      "site_restricted_search (cse.siterestrict.list GET /customsearch/v1/siterestrict)"
    ],
    "supported_regions": [
      "Global web index; country-targeted results via 'cr' parameter (200+ country codes); geolocation via 'gl' parameter"
    ],
    "supported_languages": [
      "Arabic",
      "Bulgarian",
      "Catalan",
      "Czech",
      "Danish",
      "German",
      "Greek",
      "English",
      "Spanish",
      "Estonian",
      "Finnish",
      "French",
      "Croatian",
      "Hungarian",
      "Indonesian",
      "Icelandic",
      "Italian",
      "Hebrew",
      "Japanese",
      "Korean",
      "Lithuanian",
      "Latvian",
      "Dutch",
      "Norwegian",
      "Polish",
      "Portuguese",
      "Romanian",
      "Russian",
      "Slovak",
      "Slovenian",
      "Serbian",
      "Swedish",
      "Turkish",
      "Chinese Simplified",
      "Chinese Traditional"
    ],
    "input_types": [
      "natural language query (q parameter)",
      "keyword query",
      "site filter (siteSearch parameter)",
      "language filter (lr parameter)",
      "country filter (cr parameter)",
      "file type filter",
      "date restriction",
      "image type/size/color filters",
      "safe search setting"
    ],
    "output_types": [
      "JSON (OpenSearch 1.1 compliant)",
      "search result metadata",
      "engine metadata"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [
      "JavaScript/Node.js",
      "Python",
      "Java",
      "PHP",
      ".NET",
      "Ruby",
      "Go"
    ],
    "mcp_server_available": false
  },
  "integration": {
    "api_style": "rest",
    "base_url": "https://customsearch.googleapis.com/customsearch/v1",
    "api_version": "v1",
    "versioning_scheme": "url",
    "stability": "deprecated",
    "deprecation_policy_url": "https://developers.google.com/custom-search/terms",
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://developers.google.com/custom-search/v1/introduction",
    "idempotency_supported": null,
    "error_format": null,
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": 10000,
    "rate_limit_window": "day",
    "sdk_packages": [
      {
        "package": "googleapis",
        "language": "JavaScript/Node.js",
        "official": true,
        "repo_url": "https://github.com/googleapis/google-api-nodejs-client"
      },
      {
        "package": "google-api-python-client",
        "language": "Python",
        "official": true,
        "repo_url": "https://github.com/google/google-api-python-client"
      },
      {
        "package": "google-cloud-java",
        "language": "Java",
        "official": true,
        "repo_url": "https://github.com/googleapis/google-cloud-java"
      },
      {
        "package": "google-api-php-client",
        "language": "PHP",
        "official": true,
        "repo_url": "https://github.com/google/google-api-php-client"
      },
      {
        "package": "google-cloud-dotnet",
        "language": ".NET",
        "official": true,
        "repo_url": "https://github.com/googleapis/google-cloud-dotnet"
      },
      {
        "package": "google-api-ruby-client",
        "language": "Ruby",
        "official": true,
        "repo_url": "https://github.com/google/google-api-ruby-client"
      },
      {
        "package": "google-api-go-client",
        "language": "Go",
        "official": true,
        "repo_url": "https://github.com/google/google-api-go-client"
      }
    ],
    "mcp_url": null,
    "quickstart_url": "https://developers.google.com/custom-search/v1/introduction"
  },
  "pricing": {
    "pricing_model": "usage_based",
    "has_published_pricing": true,
    "starting_price_usd": "5.0000",
    "price_basis": "1,000 queries",
    "free_tier_available": true,
    "free_tier_limit": "100 search queries per day",
    "free_tier_details": "100 search queries per day at no cost, recurring daily allowance.",
    "minimum_commitment": null,
    "self_serve_signup": false,
    "requires_sales_call": false,
    "requires_verification": false,
    "enterprise_plan_available": false,
    "price_points": [
      {
        "plan": "Free",
        "item": "Search queries",
        "amount_usd": "0.0000",
        "amount_percent": null,
        "per": "100 queries/day (recurring daily allowance)",
        "currency": "USD",
        "source_url": "https://developers.google.com/custom-search/v1/overview"
      },
      {
        "plan": "Paid",
        "item": "Search queries",
        "amount_usd": "5.0000",
        "amount_percent": null,
        "per": "1,000 queries",
        "currency": "USD",
        "source_url": "https://support.google.com/programmable-search/answer/9069107"
      }
    ]
  },
  "compliance": {
    "soc2": null,
    "hipaa": null,
    "gdpr": null,
    "iso_27001": null,
    "pci_dss": null,
    "sla_published": false,
    "sla_url": null,
    "data_retention_policy_url": null,
    "documented_rate_limits": "100 search queries per day free; additional requests cost $5 per 1,000 queries, up to 10,000 queries per day maximum. The JSON API will never return more than 100 results total (start + num must not exceed 100). num parameter valid values are integers between 1 and 10.",
    "known_restrictions": [
      "API is closed to new customers; existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution",
      "Maximum 10,000 queries per day even with paid tier",
      "Maximum 100 total results per search engine query (start + num <= 100)",
      "Must not build databases or create permanent copies of search results beyond cache header limits",
      "Must not keep cached copies longer than permitted by cache header",
      "Results may not be sublicensed or distributed to third parties",
      "Search engine must be configured via Programmable Search Engine control panel (cx parameter required)",
      "Site Restricted JSON API limited to search engines with 10 or fewer specific sites, no global TLD patterns, and 'Search the entire web' disabled"
    ]
  },
  "developer": {
    "docs_url": "https://developers.google.com/docs",
    "api_reference_url": "https://developers.google.com/workspace/docs/api/how-tos/overview",
    "openapi_spec_url": null,
    "postman_collection_url": null,
    "changelog_url": null,
    "status_page_url": null,
    "llms_txt_url": null,
    "markdown_docs_url": null,
    "rendering": "static"
  },
  "adoption": {
    "launched_at": "2006-10-23",
    "ga_date": null,
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": []
  },
  "scores": {
    "agent_friendliness": 20,
    "pricing_transparency": 100,
    "setup_speed": 50,
    "docs_quality": 35,
    "procurement_friction": 75,
    "trust_readiness": 0,
    "best_for": [
      "Cost-sensitive teams - low, transparent entry price"
    ],
    "avoid_if": [
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "vendor_description",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "The Custom Search JSON API lets you develop websites and applications to retrieve and display search results from Programmable Search Engine programmatically.",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list",
      "excerpt": "Returns metadata about the search performed, metadata about the engine used for the search, and the search results.",
      "confidence": "high"
    },
    {
      "field": "supported_actions",
      "url": "https://developers.google.com/custom-search/v1/site_restricted_api",
      "excerpt": "This API is restricted to Programmable Search Engines configured with: 10 or fewer specific sites to search; No global top-level domain patterns; 'Search the entire web' disabled",
      "confidence": "high"
    },
    {
      "field": "supported_languages",
      "url": "https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list",
      "excerpt": "lr ... Valid values: lang_ar, lang_bg, lang_ca, lang_cs, lang_da, lang_de, lang_el, lang_en, lang_es, lang_et, lang_fi, lang_fr, lang_hr, lang_hu, lang_id, lang_is, lang_it, lang_iw, lang_ja, lang_ko, lang_lt, lang_lv, lang_nl, lang_no, lang_pl, lang_pt, lang_ro, lang_ru, lang_sk, lang_sl, lang_sr, lang_sv, lang_tr, lang_zh-CN, lang_zh-TW",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Custom Search JSON API provides 100 search queries per day for free. If you need more, you may sign up for billing in the API Console. Additional requests cost $5 per 1000 queries, up to 10k queries per day.",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://support.google.com/programmable-search/answer/9069107",
      "excerpt": "JSON API: Cost: $5 per thousand queries; Daily limit: 10,000 queries per day",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Custom Search JSON API provides 100 search queries per day for free.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Additional requests cost $5 per 1000 queries, up to 10k queries per day.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://developers.google.com/custom-search/v1/reference/rest/v1/cse/list",
      "excerpt": "setting the sum of start + num to a number greater than 100 will produce an error",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "The Custom Search JSON API is closed to new customers. Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution.",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "The Custom Search JSON API is closed to new customers. Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution.",
      "confidence": "high"
    },
    {
      "field": "known_restrictions",
      "url": "https://developers.google.com/custom-search/v1/site_restricted_api",
      "excerpt": "This API is restricted to Programmable Search Engines configured with: 10 or fewer specific sites to search; No global top-level domain patterns; 'Search the entire web' disabled",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Custom Search JSON API provides 100 search queries per day for free.",
      "confidence": "high"
    },
    {
      "field": "sdk_languages",
      "url": "https://developers.google.com/custom-search/v1/libraries",
      "excerpt": "The Google API client libraries, which are available in a number of popular programming languages, make it easy to use the Custom Search JSON API.",
      "confidence": "high"
    },
    {
      "field": "api_style",
      "url": "https://developers.google.com/custom-search/v1/using_rest",
      "excerpt": "Base URL: https://www.googleapis.com/customsearch/v1",
      "confidence": "high"
    },
    {
      "field": "api_style",
      "url": "https://developers.google.com/custom-search/v1/reference/rest",
      "excerpt": "The REST endpoints are GET /customsearch/v1 (cse.list) and GET /customsearch/v1/siterestrict (cse.siterestrict.list).",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://developers.google.com/custom-search/v1/reference/rest",
      "excerpt": "Base URL: https://customsearch.googleapis.com",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://github.com/googleapis/google-api-nodejs-client/blob/main/src/apis/customsearch/v1.ts",
      "excerpt": "rootUrl: 'https://customsearch.googleapis.com/', servicePath: 'customsearch/v1'",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://developers.google.com/custom-search/v1/reference/rest",
      "excerpt": "API version v1 indicated in path /customsearch/v1",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://developers.google.com/custom-search/v1/introduction",
      "excerpt": "The API references version 1 (v1) in URL structures and documentation paths.",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://developers.google.com/custom-search/v1/reference/rest",
      "excerpt": "Method: GET /customsearch/v1 — version embedded in URL path",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://developers.google.com/custom-search/v1/introduction",
      "excerpt": "Custom Search JSON API requires the use of an API key. An API key is a way to identify your client to Google.",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://developers.google.com/custom-search/v1/introduction",
      "excerpt": "your application can append the query parameter key=yourAPIKey to all request URLs",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "The Custom Search JSON API is closed to new customers. Existing Custom Search JSON API customers have until January 1, 2027 to transition to an alternative solution.",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://dev.to/nexgendata/google-kills-custom-search-api-on-jan-1-2027-you-have-9-months-1jg1",
      "excerpt": "The Custom Search JSON API will be discontinued on January 1, 2027.",
      "confidence": "high"
    },
    {
      "field": "deprecation_policy_url",
      "url": "https://developers.google.com/custom-search/terms",
      "excerpt": "Google commits to providing advance notice before discontinuing the API or introducing backwards incompatible changes to the API.",
      "confidence": "medium"
    },
    {
      "field": "deprecation_policy_url",
      "url": "https://developers.google.com/custom-search/custom-search-api-list",
      "excerpt": "The following Custom Search JSON API versions and features are subject to the Deprecation Policy (as set forth in your applicable terms of service).",
      "confidence": "medium"
    },
    {
      "field": "free_tier_limit",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Custom Search JSON API provides 100 search queries per day for free.",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://developers.google.com/custom-search/docs/overview",
      "excerpt": "Custom Search JSON API: $5 per thousand queries, 10,000 queries per day",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Additional requests cost $5 per 1000 queries, up to 10k queries per day.",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://developers.google.com/custom-search/docs/overview",
      "excerpt": "Custom Search JSON API: $5 per thousand queries",
      "confidence": "high"
    },
    {
      "field": "price_basis",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Additional requests cost $5 per 1000 queries, up to 10k queries per day.",
      "confidence": "high"
    },
    {
      "field": "rate_limit_requests",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Additional requests cost $5 per 1000 queries, up to 10k queries per day.",
      "confidence": "high"
    },
    {
      "field": "rate_limit_window",
      "url": "https://developers.google.com/custom-search/v1/overview",
      "excerpt": "Additional requests cost $5 per 1000 queries, up to 10k queries per day.",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://developers.google.com/custom-search/v1/libraries",
      "excerpt": "Libraries make it easy to use the Custom Search JSON API: Java (google-cloud-java), JavaScript (google-api-javascript-client), .NET (google-cloud-dotnet), PHP (google-api-php-client), Python (google-api-python-client)",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://github.com/googleapis/google-api-nodejs-client/blob/main/src/apis/customsearch/v1.ts",
      "excerpt": "npm install googleapis — access via const {google} = require('googleapis'); const customsearch = google.customsearch('v1');",
      "confidence": "high"
    },
    {
      "field": "quickstart_url",
      "url": "https://developers.google.com/custom-search/v1/introduction",
      "excerpt": "The documentation directs users to the Try this API tool at /custom-search/v1/reference/rest/v1/cse/list?apix=true for experimentation without coding.",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://en.wikipedia.org/wiki/Google_Programmable_Search_Engine",
      "excerpt": "The Custom Search Engine was Released on October 23, 2006, though the platform is listed as launched October 24, 2006; 19 years ago.",
      "confidence": "medium"
    },
    {
      "field": "requires_verification",
      "url": "https://developers.google.com/custom-search/v1/introduction",
      "excerpt": "Three query parameters are required with each search request: an API key, a Programmable Search Engine ID, and a search query.",
      "confidence": "medium"
    }
  ],
  "fields_not_found": [
    "soc2",
    "hipaa",
    "gdpr",
    "iso_27001",
    "pci_dss",
    "mcp_server_available (no official Google MCP server found; only community implementations)",
    "ga_date",
    "error_format",
    "idempotency_supported",
    "sla_url",
    "data_retention_policy_url",
    "webhook_signing",
    "webhook_events_url",
    "mcp_url",
    "notable_customers"
  ],
  "source_confidence": "high",
  "last_verified_at": "2026-06-14T00:00:00.000Z",
  "contribute": {
    "note": "This data is crowd-editable. Suggest corrections or leave a review via these endpoints - no auth required, requests are rate-limited, and every submission is reviewed before it goes live. For a field edit, {field} is any key in this response and a citation is required.",
    "endpoints": [
      {
        "action": "review",
        "label": "Leave a review or comment",
        "method": "POST",
        "url": "https://apio.sh/api/feedback/google-custom-search",
        "example_body": {
          "kind": "review",
          "rating": 5,
          "body": "Your experience with this API…"
        }
      },
      {
        "action": "field_edit",
        "label": "Suggest a correction to a field (cite a source)",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/google-custom-search/{field}",
        "example_body": {
          "value": "corrected value",
          "citations": [
            {
              "url": "https://source.example/page",
              "excerpt": "supporting quote"
            }
          ],
          "note": "what changed and why"
        }
      },
      {
        "action": "new_api",
        "label": "Suggest a new API to add",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/api",
        "example_body": {
          "value": {
            "name": "Acme API",
            "website_url": "https://acme.example"
          },
          "citations": [
            {
              "url": "https://acme.example"
            }
          ]
        }
      },
      {
        "action": "token",
        "label": "Optional - raise your rate limit",
        "method": "GET",
        "url": "https://apio.sh/api/feedback/token"
      }
    ]
  }
}