<!DOCTYPE html><html lang="en" dir="ltr"><head>
    <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"><meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award https://www.googleapis.com/auth/devprofiles.full_control.firstparty"><meta property="og:site_name" content="Google Cloud Documentation">
    <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><meta charset="utf-8">
    <meta content="IE=Edge" http-equiv="X-UA-Compatible">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    

    <link rel="manifest" href="/_pwa/clouddocs/manifest.json" crossorigin="use-credentials">
    <link rel="preconnect" href="//www.gstatic.com" crossorigin="">
    <link rel="preconnect" href="//fonts.googleapis.com" crossorigin="">
    <link rel="preconnect" href="//www.google-analytics.com" crossorigin=""><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&amp;display=swap">
      <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&amp;family=Material+Symbols+Outlined&amp;display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/css/app.css">
      
        <link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/css/dark-theme.css" disabled="">
      <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/favicons/onecloud/favicon.ico">
    <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/favicons/onecloud/super_cloud.png"><link rel="canonical" href="https://docs.cloud.google.com/docs/discovery/use-api"><link rel="search" type="application/opensearchdescription+xml" title="Google Cloud Documentation" href="https://docs.cloud.google.com/s/opensearch.xml">
      <link rel="alternate" hreflang="en" href="https://docs.cloud.google.com/docs/discovery/use-api"><link rel="alternate" hreflang="x-default" href="https://docs.cloud.google.com/docs/discovery/use-api"><link rel="alternate" hreflang="zh-Hans" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=zh-cn"><link rel="alternate" hreflang="zh-Hant" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=zh-tw"><link rel="alternate" hreflang="fr" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=fr"><link rel="alternate" hreflang="de" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=de"><link rel="alternate" hreflang="he" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=he"><link rel="alternate" hreflang="id" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=id"><link rel="alternate" hreflang="it" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=it"><link rel="alternate" hreflang="ja" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=ja"><link rel="alternate" hreflang="ko" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=ko"><link rel="alternate" hreflang="pt-BR" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=pt-br"><link rel="alternate" hreflang="pt" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=pt"><link rel="alternate" hreflang="es" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=es"><link rel="alternate" hreflang="es-419" href="https://docs.cloud.google.com/docs/discovery/use-api?hl=es-419"><link rel="alternate" hreflang="en" href="https://berlin.devsitetest.how/docs/discovery/use-api"><link rel="alternate" hreflang="x-default" href="https://berlin.devsitetest.how/docs/discovery/use-api"><link rel="alternate" hreflang="zh-Hans" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=zh-cn"><link rel="alternate" hreflang="zh-Hant" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=zh-tw"><link rel="alternate" hreflang="fr" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=fr"><link rel="alternate" hreflang="de" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=de"><link rel="alternate" hreflang="he" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=he"><link rel="alternate" hreflang="id" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=id"><link rel="alternate" hreflang="it" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=it"><link rel="alternate" hreflang="ja" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=ja"><link rel="alternate" hreflang="ko" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=ko"><link rel="alternate" hreflang="pt-BR" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=pt-br"><link rel="alternate" hreflang="pt" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=pt"><link rel="alternate" hreflang="es" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=es"><link rel="alternate" hreflang="es-419" href="https://berlin.devsitetest.how/docs/discovery/use-api?hl=es-419"><title>Use the Discovery API &nbsp;|&nbsp; Google APIs Discovery Service &nbsp;|&nbsp; Google Cloud Documentation</title>

<meta property="og:title" content="Use the Discovery API &nbsp;|&nbsp; Google APIs Discovery Service &nbsp;|&nbsp; Google Cloud Documentation"><meta property="og:url" content="https://docs.cloud.google.com/docs/discovery/use-api"><meta property="og:image" content="https://docs.cloud.google.com/_static/cloud/images/social-icon-google-cloud-1200-630.png">
  <meta property="og:image:width" content="1200">
  <meta property="og:image:height" content="630"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script async="" src="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/js/app_loader.js"></script><script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "Article",
    
    "headline": "Use the Discovery API"
  }
</script><script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Documentation",
      "item": "https://docs.cloud.google.com/docs"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Google APIs Discovery Service",
      "item": "https://docs.cloud.google.com/docs/discovery"
    },{
      "@type": "ListItem",
      "position": 3,
      "name": "Use the Discovery API",
      "item": "https://docs.cloud.google.com/docs/discovery/use-api"
    }]
  }
  </script>
  
  













  







  


    </head>
  <body class="color-scheme--light" template="page" theme="clouddocs-theme" type="article" appearance="" layout="docs" free-trial="" display-toc="" pending="">
  
    <devsite-progress type="indeterminate" id="app-progress"></devsite-progress>
  
  
    <a href="#main-content" class="skip-link button">
      
      Skip to main content
    </a>
    <section class="devsite-wrapper">
      <devsite-cookie-notification-bar></devsite-cookie-notification-bar>
        <cloudx-track usercountry="AU"></cloudx-track>

<devsite-header role="banner" keep-tabs-visible="">
  
    





















<div class="devsite-header--inner" data-nosnippet="">
  <div class="devsite-top-logo-row-wrapper-wrapper">
    <div class="devsite-top-logo-row-wrapper">
      <div class="devsite-top-logo-row">
        <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden="" aria-label="Open menu">
        </button>
        
<div class="devsite-product-name-wrapper">

  <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloudDocumentation" track-metadata-position="nav" track-metadata-eventdetail="nav">
  
  <picture>
    
    <source srcset="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/lockup_dark_theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme">
    
    <img src="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/lockup_full_color.svg" class="devsite-site-logo" alt="Google Cloud Documentation">
  </picture>
  
</a>



</div>
        <div class="devsite-top-logo-row-middle">
          <div class="devsite-header-upper-tabs">
            
              
              
  <devsite-tabs class="upper-tabs">

    <nav class="devsite-tabs-wrapper" aria-label="Upper tabs">
      
        
          <tab class="devsite-dropdown
    
    devsite-active
    devsite-clickable
    ">
  
    <a href="https://docs.cloud.google.com/docs" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://docs.cloud.google.com/docs" track-type="nav" track-metadata-position="nav - docs-home" track-metadata-module="primary nav" aria-label="Technology areas, selected" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="docs-home" track-link-column-type="single-column">
    Technology areas
  
    </a>
    
      <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Technology areas" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs" track-metadata-position="nav - docs-home" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="docs-home" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button>
    
  
  <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden="">
    <div class="devsite-tabs-dropdown-content">
      
        <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav">close</button>
      
      
        <div class="devsite-tabs-dropdown-column
                    ">
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
              
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/ai-ml" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/ai-ml" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      AI and ML
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/application-development" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/application-development" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Application development
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/application-hosting" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/application-hosting" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Application hosting
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/compute-area" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/compute-area" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Compute
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/data" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/data" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Data analytics and pipelines
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/databases" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/databases" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Databases
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/dhm-cloud" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/dhm-cloud" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Distributed, hybrid, and multicloud
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/industry" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/industry" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Industry solutions
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/migration" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/migration" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Migration
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/networking" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/networking" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Networking
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/observability" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/observability" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Observability and monitoring
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/security" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/security" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Security
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/storage" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/storage" track-metadata-position="nav - docs-home" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Storage
                    </div>
                    
                  </a>
                </li>
              
            </ul>
          
        </div>
      
    </div>
  </div>
</tab>
        
      
        
          <tab class="devsite-dropdown
    
    
    devsite-clickable
    ">
  
    <a href="https://docs.cloud.google.com/docs/cross-product-overviews" class="devsite-tabs-content gc-analytics-event " track-metadata-eventdetail="https://docs.cloud.google.com/docs/cross-product-overviews" track-type="nav" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column">
    Cross-product tools
  
    </a>
    
      <button aria-haspopup="menu" aria-expanded="false" aria-label="Dropdown menu for Cross-product tools" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/cross-product-overviews" track-metadata-position="nav - crossproduct" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" class="devsite-tabs-dropdown-toggle devsite-icon devsite-icon-arrow-drop-down"></button>
    
  
  <div class="devsite-tabs-dropdown" role="menu" aria-label="submenu" hidden="">
    <div class="devsite-tabs-dropdown-content">
      
        <button class="devsite-tabs-close-button material-icons button-flat gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close dropdown menu" aria-label="Close dropdown menu" track-type="nav" track-name="close" track-metadata-eventdetail="#" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav">close</button>
      
      
        <div class="devsite-tabs-dropdown-column
                    ">
          
            <ul class="devsite-tabs-dropdown-section
                       ">
              
              
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/access-resources" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/access-resources" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Access and resources management
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/costs-usage" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/costs-usage" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Costs and usage management
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/iac" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/iac" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      Infrastructure as code
                    </div>
                    
                  </a>
                </li>
              
                <li class="devsite-nav-item">
                  <a href="https://docs.cloud.google.com/docs/devtools" track-type="nav" track-metadata-eventdetail="https://docs.cloud.google.com/docs/devtools" track-metadata-position="nav - crossproduct" track-metadata-module="tertiary nav" tooltip="">
                    
                    <div class="devsite-nav-item-title">
                      SDK, languages, frameworks, and tools
                    </div>
                    
                  </a>
                </li>
              
            </ul>
          
        </div>
      
    </div>
  </div>
</tab>
        
      
    </nav>

  </devsite-tabs>

            
           </div>
          
<devsite-search enable-signin="" enable-search="" enable-suggestions="" enable-search-summaries="" project-name="Google APIs Discovery Service" tenant-name="Google Cloud Documentation" project-scope="/docs/discovery" url-scoped="https://docs.cloud.google.com/s/results/docs/discovery">
  <form class="devsite-search-form" action="https://docs.cloud.google.com/s/results" method="GET">
    <div class="devsite-search-container">
      <button type="button" search-open="" class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button>
      <div class="devsite-searchbox">
        <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="">
          <div class="devsite-search-image material-icons" aria-hidden="true">
            
              <svg class="devsite-search-ai-image" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                  <g clip-path="url(#clip0_6641_386)">
                    <path d="M19.6 21L13.3 14.7C12.8 15.1 12.225 15.4167 11.575 15.65C10.925 15.8833 10.2333 16 9.5 16C7.68333 16 6.14167 15.375 4.875 14.125C3.625 12.8583 3 11.3167 3 9.5C3 7.68333 3.625 6.15 4.875 4.9C6.14167 3.63333 7.68333 3 9.5 3C10.0167 3 10.5167 3.05833 11 3.175C11.4833 3.275 11.9417 3.43333 12.375 3.65L10.825 5.2C10.6083 5.13333 10.3917 5.08333 10.175 5.05C9.95833 5.01667 9.73333 5 9.5 5C8.25 5 7.18333 5.44167 6.3 6.325C5.43333 7.19167 5 8.25 5 9.5C5 10.75 5.43333 11.8167 6.3 12.7C7.18333 13.5667 8.25 14 9.5 14C10.6667 14 11.6667 13.625 12.5 12.875C13.35 12.1083 13.8417 11.15 13.975 10H15.975C15.925 10.6333 15.7833 11.2333 15.55 11.8C15.3333 12.3667 15.05 12.8667 14.7 13.3L21 19.6L19.6 21ZM17.5 12C17.5 10.4667 16.9667 9.16667 15.9 8.1C14.8333 7.03333 13.5333 6.5 12 6.5C13.5333 6.5 14.8333 5.96667 15.9 4.9C16.9667 3.83333 17.5 2.53333 17.5 0.999999C17.5 2.53333 18.0333 3.83333 19.1 4.9C20.1667 5.96667 21.4667 6.5 23 6.5C21.4667 6.5 20.1667 7.03333 19.1 8.1C18.0333 9.16667 17.5 10.4667 17.5 12Z" fill="#5F6368"></path>
                  </g>
                <defs>
                <clipPath id="clip0_6641_386">
                <rect width="24" height="24" fill="white"></rect>
                </clipPath>
                </defs>
              </svg>
            
          </div>
          <div class="devsite-search-shortcut-icon-container" aria-hidden="true">
            <kbd class="devsite-search-shortcut-icon">/</kbd>
          </div>
      </div>
    </div>
  </form>
  <button type="button" search-close="" class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button>
</devsite-search>

        </div>

        

  

  
    <a class="devsite-header-link devsite-top-button button gc-analytics-event button-with-icon" href="//console.cloud.google.com/" data-category="Site-Wide Custom Events" data-label="Site header link: Console" track-metadata-eventdetail="nav" track-metadata-position="nav" track-type="globalNav" track-name="console" referrerpolicy="no-referrer-when-downgrade">
  Console
</a>
  

  

  <devsite-appearance-selector></devsite-appearance-selector>

  
<devsite-language-selector>
  <ul role="presentation">
    
    
    <li role="presentation">
      <a role="menuitem" lang="en">English</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="de">Deutsch</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es">Español</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es_419">Español – América Latina</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="fr">Français</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="id">Indonesia</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="it">Italiano</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt">Português</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt_br">Português – Brasil</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="he">עברית</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_cn">中文 – 简体</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_tw">中文 – 繁體</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ja">日本語</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ko">한국어</a>
    </li>
    
  </ul>
</devsite-language-selector>




        
          <devsite-user enable-profiles="" fp-auth="" id="devsite-user">
            
              
              <span class="button devsite-top-button" aria-hidden="true" visually-hidden="">Sign in</span>
            
          </devsite-user>
        
        
        
      </div>
    </div>
  </div>



  <div class="devsite-collapsible-section
    
      devsite-header-no-lower-tabs
    ">
    <div class="devsite-header-background">
      
        
          <div class="devsite-product-id-row">
            <div class="devsite-product-description-row">
              
                
                <div class="devsite-product-id">
                  
                    
  
  <a href="https://docs.cloud.google.com/docs/discovery">
    
  <div class="devsite-product-logo-container" size="medium">
  
    <picture>
      
      <source class="devsite-dark-theme" media="(prefers-color-scheme: dark)" srcset=" /static/site-assets/images/cloud-white.svg" sizes="64px">
      
      <img class="devsite-product-logo" alt="" src="https://docs.cloud.google.com/static/site-assets/images/cloud.svg" srcset=" /static/site-assets/images/cloud.svg" sizes="64px" loading="lazy">
    </picture>
  
  </div>
  
  </a>
  

                  
                  
                  
                    <ul class="devsite-breadcrumb-list" aria-label="Lower header breadcrumb">
  
  <li class="devsite-breadcrumb-item
             ">
    
    
    
      
        
  <a href="https://docs.cloud.google.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Documentation">
    
          Documentation
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/docs/discovery" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Google APIs Discovery Service">
    
          Google APIs Discovery Service
        
  </a>
  
      
    
  </li>
  
</ul>
                </div>
                
              
              
            </div>
            
              <div class="devsite-product-button-row">
  

  
  <a href="//console.cloud.google.com/freetrial" class="cloud-free-trial-button button button-primary
      " track-type="freeTrial" referrerpolicy="no-referrer-when-downgrade" track-metadata-position="nav" track-name="gcpCta" track-metadata-eventdetail="nav">Start free</a>

</div>
            
          </div>
          
        
      
      
    </div>
  </div>

</div>



  

  
</devsite-header>
        <devsite-book-nav scrollbars="">
          
            





















<div class="devsite-book-nav-filter">
  <span class="filter-list-icon material-icons" aria-hidden="true"></span>
  <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox">
  
  <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span>
</div>

<nav class="devsite-book-nav devsite-nav nocontent" data-nosnippet="" aria-label="Side menu">
  <div class="devsite-mobile-header">
    <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation">
    </button>
    <div class="devsite-product-name-wrapper">

  <a href="/" class="devsite-site-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Site logo" track-type="globalNav" track-name="googleCloudDocumentation" track-metadata-position="nav" track-metadata-eventdetail="nav">
  
  <picture>
    
    <source srcset="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/lockup_dark_theme.svg" media="(prefers-color-scheme: dark)" class="devsite-dark-theme">
    
    <img src="https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/lockup_full_color.svg" class="devsite-site-logo" alt="Google Cloud Documentation">
  </picture>
  
</a>


</div>
  </div>

  <div class="devsite-book-nav-wrapper">
    <div class="devsite-mobile-nav-top">
      
        <ul class="devsite-nav-list">
          
            <li class="devsite-nav-item">
              
  
  <a href="/docs" class="devsite-nav-title gc-analytics-event
              devsite-nav-has-children
              devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="docs-home" track-link-column-type="single-column" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Technology areas
   </span>
    
    <span class="devsite-nav-icon material-icons" data-icon="forward">
    </span>
    
  
  </a>
  

  
    <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu
               ">
      
<li class="devsite-nav-item">

  
  <span class="devsite-nav-title" tooltip="" data-category="Site-Wide Custom Events" data-label="Tab: Technology areas" track-name="docs-home" track-link-column-type="single-column">
  
    <span class="devsite-nav-text" tooltip="" menu="Technology areas">
      More
   </span>
    
    <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Technology areas">
    </span>
    
  
  </span>
  

</li>

    </ul>
  
              
            </li>
          
            <li class="devsite-nav-item">
              
  
  <a href="/docs/cross-product-overviews" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column" track-type="globalNav" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Cross-product tools
   </span>
    
  
  </a>
  

  
    <ul class="devsite-nav-responsive-tabs devsite-nav-has-menu
               ">
      
<li class="devsite-nav-item">

  
  <span class="devsite-nav-title" tooltip="" data-category="Site-Wide Custom Events" data-label="Tab: Cross-product tools" track-name="crossproduct" track-link-column-type="single-column">
  
    <span class="devsite-nav-text" tooltip="" menu="Cross-product tools">
      More
   </span>
    
    <span class="devsite-nav-icon material-icons" data-icon="forward" menu="Cross-product tools">
    </span>
    
  
  </span>
  

</li>

    </ul>
  
              
            </li>
          
          
    
    
<li class="devsite-nav-item">

  
  <a href="//console.cloud.google.com/" class="devsite-nav-title gc-analytics-event button-with-icon" track-metadata-eventdetail="nav" track-metadata-position="nav" track-type="globalNav" track-name="console" referrerpolicy="no-referrer-when-downgrade" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Console">
  
    <span class="devsite-nav-text" tooltip="">
      Console
   </span>
    
  
  </a>
  

</li>

  
          
        </ul>
      
    </div>
    
      <div class="devsite-mobile-nav-bottom">
        
          
          <ul class="devsite-nav-list" menu="_book">
            <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip="">Discover</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/apis/docs/overview" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Google Cloud APIs</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/docs/resources/enterprise-apis" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Google Enterprise APIs</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip="">Get started</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/apis/docs/getting-started" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Getting started</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/docs/capping-api-usage" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Capping API usage</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/docs/monitoring" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Monitoring API usage</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/docs/troubleshooting" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Troubleshooting API usage</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/docs/http" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">HTTP guidelines</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/docs/system-parameters" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">System parameters</span></a></li>

  <li class="devsite-nav-item
           devsite-nav-heading"><div class="devsite-nav-title devsite-nav-title-no-path">
        <span class="devsite-nav-text" tooltip="">API design guide</span>
      </div></li>

  <li class="devsite-nav-item"><a href="/apis/design" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Introduction</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/design/directory_structure" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Directory structure</span></a></li>

  <li class="devsite-nav-item"><a href="/apis/design/changelog" class="devsite-nav-title"><span class="devsite-nav-text" tooltip="">Changelog</span></a></li>
          </ul>
        
        
          
    
      
      <ul class="devsite-nav-list" menu="Technology areas" aria-label="Side menu" hidden="">
        
          
            
            
              
<li class="devsite-nav-item">

  
  <a href="/docs/ai-ml" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: AI and ML" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      AI and ML
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/application-development" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application development" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Application development
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/application-hosting" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Application hosting" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Application hosting
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/compute-area" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Compute" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Compute
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/data" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Data analytics and pipelines" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Data analytics and pipelines
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/databases" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Databases" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Databases
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/dhm-cloud" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Distributed, hybrid, and multicloud" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Distributed, hybrid, and multicloud
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/industry" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Industry solutions" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Industry solutions
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/migration" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Migration" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Migration
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/networking" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Networking" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Networking
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/observability" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Observability and monitoring" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Observability and monitoring
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/security" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Security" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Security
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/storage" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Storage" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Storage
   </span>
    
  
  </a>
  

</li>

            
          
        
      </ul>
    
  
    
      
      <ul class="devsite-nav-list" menu="Cross-product tools" aria-label="Side menu" hidden="">
        
          
            
            
              
<li class="devsite-nav-item">

  
  <a href="/docs/access-resources" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Access and resources management" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Access and resources management
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/costs-usage" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Costs and usage management" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Costs and usage management
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/iac" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: Infrastructure as code" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      Infrastructure as code
   </span>
    
  
  </a>
  

</li>

            
              
<li class="devsite-nav-item">

  
  <a href="/docs/devtools" class="devsite-nav-title gc-analytics-event
              
              " data-category="Site-Wide Custom Events" data-label="Responsive Tab: SDK, languages, frameworks, and tools" track-type="navMenu" track-metadata-eventdetail="globalMenu" track-metadata-position="nav">
  
    <span class="devsite-nav-text" tooltip="">
      SDK, languages, frameworks, and tools
   </span>
    
  
  </a>
  

</li>

            
          
        
      </ul>
    
  
        
        
          
    
  
        
      </div>
    
  </div>
</nav>
          
        </devsite-book-nav>
      
      <section id="gc-wrapper">
        <main role="main" id="main-content" class="devsite-main-content" has-book-nav="" has-sidebar="">
          <div class="devsite-sidebar">
            <div class="devsite-sidebar-content">
                
                <devsite-toc class="devsite-nav" role="navigation" aria-label="On this page" depth="2" scrollbars="" data-nosnippet=""></devsite-toc>
                <devsite-recommendations-sidebar class="nocontent devsite-nav" data-nosnippet="">
                </devsite-recommendations-sidebar>
            </div>
          </div>
          <devsite-content>
            
              










<article class="devsite-article">
  
  
  
  
  

  <div class="devsite-article-meta nocontent" role="navigation" data-nosnippet="">
    
    
    <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb">
  
  <li class="devsite-breadcrumb-item
             ">
    
    
    
      
        
  <a href="https://docs.cloud.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google Cloud Documentation">
    
          Home
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/docs" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="Documentation">
    
          Documentation
        
  </a>
  
      
    
  </li>
  
  <li class="devsite-breadcrumb-item
             ">
    
      
      <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div>
    
    
    
      
        
  <a href="https://docs.cloud.google.com/docs/discovery" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google APIs Discovery Service">
    
          Google APIs Discovery Service
        
  </a>
  
      
    
  </li>
  
</ul>
    
      
    <devsite-thumb-rating position="header">
    </devsite-thumb-rating>
  
    
  </div>
  
    <h1 class="devsite-page-title" tabindex="-1">
      Use the Discovery API<devsite-actions hidden="" data-nosnippet=""><devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" data-nosnippet="" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it">

    
    
      <devsite-bookmark></devsite-bookmark>
    

    <span slot="popout-heading">
      
      Stay organized with collections
    </span>
    <span slot="popout-contents">
      
      Save and categorize content based on your preferences.
    </span>
  </devsite-feature-tooltip>
    <devsite-llm-tools></devsite-llm-tools></devsite-actions>
  
      
    </h1>
  

  <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded="">
  </devsite-toc>
  
    
  <div class="devsite-article-body clearfix
  ">

  
    
    
    
    <p>
      This document is intended for developers who want to write client libraries, IDE plugins, and
      other tools for interacting with Google APIs. The Google APIs Discovery Service allows you to do all of the
      above by exposing machine readable metadata about other Google APIs through a simple API. This
      guide provides an overview of each section of the Discovery document, as well as helpful tips
      on how to use the document.
    </p>
    <p>
      All calls to the API are unauthenticated, JSON-based, <a href="https://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> requests that use
      SSL—in other words, URLs begin with <code translate="no" dir="ltr">https</code>.
    </p>

  <h2 id="discovery-document-format" data-text="Discovery document format" tabindex="-1">Discovery document format</h2>
    <p>This section gives an overview of the Discovery document.</p>
    <p>
      All the examples below use the Discovery document from the
      <a href="https://cloud.google.com/service-usage/docs/reference/rest">Service Usage API</a>.
      You can load the
      <a href="https://serviceusage.googleapis.com/$discovery/rest?version=v1">Discovery document</a>
      for the Service Usage API by executing this <code translate="no" dir="ltr">GET</code> request:
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded="">GET https://<strong>serviceusage</strong>.googleapis.com/$discovery/rest?version=<strong>v1</strong>
</pre></devsite-code>
    <p>
      The format of a Discovery document includes information that falls into six main categories:
    </p>
    <ul>
      <li><a href="#discovery-doc-apiproperties">Basic description</a> of the API.</li>
      <li><a href="#discovery-doc-auth">Authentication</a> information for the API.</li>
      <li>
        <a href="#discovery-doc-resources">Resource and schema details</a> describing the API's
        data.
      </li>
      <li>Details about the <a href="#discovery-doc-methods">API's methods</a>.</li>
      <li>
        Information about any custom <a href="#discovery-features">features</a> supported by the
        API.
      </li>
      <li>
        <a href="#discovery-doc-documentation">Inline documentation</a> that describes key elements
        of the API.
      </li>
    </ul>
    <p>
      Each of these Discovery document sections is described below.
    </p>

  <h3 id="basic-api-description" data-text="Basic API Description" tabindex="-1">Basic API Description</h3>
    <p>The Discovery document contains a set of API-specific properties. These properties don't necessarily
      appear in this order, or in the same section of the discovery doc:</p>
<div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"id"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"serviceusage:v1"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"canonicalName"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Service Usage"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"revision"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"20240331"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"servicePath"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">""</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"baseUrl"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"https://serviceusage.googleapis.com/"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"kind"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"discovery#restDescription"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"ownerDomain"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"google.com"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"version_module"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"version"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"v1"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"fullyEncodeReservedExpansion"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"name"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"serviceusage"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"title"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Service Usage API"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"discoveryVersion"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"v1"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"rootUrl"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"https://serviceusage.googleapis.com/"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"protocol"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"rest"</span></pre></devsite-code>
    <p>
      These API-level properties include details about a particular version of an API, including
      the <code translate="no" dir="ltr">name</code>, <code translate="no" dir="ltr">version</code>, <code translate="no" dir="ltr">title</code> and
      <code translate="no" dir="ltr">description</code>. The <code translate="no" dir="ltr">protocol</code> always has a fixed value of
      <code translate="no" dir="ltr">rest</code>, as the APIs Discovery Service only supports RESTful methods of accessing the
      APIs.
    </p>
    <p>
      The <code translate="no" dir="ltr">servicePath</code> field indicates the path prefix for this particular API
      version.
    </p>

  <h3 id="authentication" data-text="Authentication" tabindex="-1">Authentication</h3>
    <p>
      The <code translate="no" dir="ltr">auth</code> section contains details about the OAuth 2.0 auth scopes for the API. To
      learn more about how to use scopes with OAuth 2.0, visit <a href="/accounts/docs/OAuth2">Using
      OAuth 2.0 to Access Google APIs</a>.
    </p>
    <p>
      The <code translate="no" dir="ltr">auth</code> section contains a nested <code translate="no" dir="ltr">oauth2</code> and <code translate="no" dir="ltr">scopes</code>
      section. The <code translate="no" dir="ltr">scopes</code> section is a key/value mapping from the scope value to more
      details about the scope:
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"<strong>auth</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"<strong>oauth2</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>scopes</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"https://www.googleapis.com/auth/cloud-platform"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"https://www.googleapis.com/auth/cloud-platform.read-only"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"View your data across Google Cloud services and see the email address of your Google Account"</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"https://www.googleapis.com/auth/service.management"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Manage your Google API service configuration"</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
    <p>
      The <code translate="no" dir="ltr">auth</code> section only defines the scopes for a particular API. To learn how these
      scopes are associated with an API method, consult the <a href="#discovery-doc-methods">Methods</a> section below.
    </p>

  <h3 id="resources-and-schemas" data-text="Resources and schemas" tabindex="-1">Resources and schemas</h3>
    <p>
      An API's operations act on data objects called <code translate="no" dir="ltr">resources</code>. The Discovery document
      is built around the concept of resources. Each Discovery document has a top-level
      <code translate="no" dir="ltr">resources</code> section that groups all the resources associated with the API. For
      example, the Service Usage API has a <code translate="no" dir="ltr">services</code> resource and an
      <code translate="no" dir="ltr">operations</code> resource under top-level <code translate="no" dir="ltr">resources</code>:
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"<strong>resources</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"services"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-c1">// Methods associated with the services resource</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"operations"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-c1">// Methods associated with the operations resource</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
    <p>
      Inside each resource section are the methods associated with that resource. For example, the
      Service Usage API has six methods associated with the <code translate="no" dir="ltr">services</code>
      resource: <code translate="no" dir="ltr">get</code>, <code translate="no" dir="ltr">enable</code>, <code translate="no" dir="ltr">disable</code>, <code translate="no" dir="ltr">batchGet</code>,
      <code translate="no" dir="ltr">batchEnable</code>, and <code translate="no" dir="ltr">list</code>.
    </p>
    <p>
      Schemas tell you what the resources in an API look like. Each Discovery document has a
      top-level <code translate="no" dir="ltr">schemas</code> section, which contains a name/value pair of schema ID to
      object. Schema IDs are unique per API, and are used to uniquely identify the schema in the
      <code translate="no" dir="ltr">methods</code> section of the Discovery document. For example, here are a few of the
      schemas in the Service Usage API Discovery document:
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"<strong>schemas</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"Method"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-c1">// JSON schema of the Method resource</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"Authentication"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-c1">// JSON schema of the Authentication resource</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"RubySettings"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-c1">// JSON schema of the RubySettings resource</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"EnableServiceResponse"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">   </span><span class="devsite-syntax-c1">// JSON schema of the EnableServiceResponse resource</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
    <p>
      APIs Discovery Service uses <a href="https://tools.ietf.org/html/draft-zyp-json-schema-03">JSON
      Schema draft-03</a> for its schema representations. The following is a snippet of the JSON
      Schema for the <code translate="no" dir="ltr">EnableServiceResponse</code> resource, along with the
      <code translate="no" dir="ltr">GoogleApiServiceusagev1Service</code> that it references. Alongside these schemas is a
      portion of an actual response for a request to enable the Pub/Sub API
      (<code translate="no" dir="ltr">pubsub.googleapis.com</code>).
    </p>
    <div class="apiindent">
    <table class="columns">
      <tbody><tr>
        <td><strong><code translate="no" dir="ltr">EnableServiceResponse</code> Resource JSON Schema:</strong></td>
        <td><strong>Actual response for enabling a service:</strong></td>
      </tr>
      <tr>
        <td>
<div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"EnableServiceResponse"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"id"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"EnableServiceResponse"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Response message for the `EnableService` method. This response message is assigned to the `response` field of the returned Operation when that operation is done."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"properties"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>service</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"The new state of the service after enabling."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"$ref"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"GoogleApiServiceusageV1Service"</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"object"</span>
<span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-nt">"GoogleApiServiceusageV1Service"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"A service that is available for use by the consumer."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"properties"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>config</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"$ref"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"GoogleApiServiceusageV1ServiceConfig"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"The service configuration of the available service. Some fields may be filtered out of the configuration in responses to the `ListServices` method. These fields are present only in responses to the `GetService` method."</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>name</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"string"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"The resource name of the consumer and service. A valid name would be: - projects/123/services/serviceusage.googleapis.com"</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<code translate="no" dir="ltr">state</code>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"enumDescriptions"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-s2">"The default value, which indicates that the enabled state of the service is unspecified or not meaningful. Currently, all consumers other than projects (such as folders and organizations) are always in this state."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-s2">"The service cannot be used by this consumer. It has either been explicitly disabled, or has never been enabled."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-s2">"The service has been explicitly enabled for use by this consumer."</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">],</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Whether or not the service has been enabled for use by the consumer."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"string"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"enum"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-s2">"STATE_UNSPECIFIED"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-s2">"DISABLED"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-s2">"ENABLED"</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">]</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<code translate="no" dir="ltr">parent</code>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"string"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"The resource name of the consumer. A valid name would be: - projects/123"</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"id"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"GoogleApiServiceusageV1Service"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"object"</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
        </td>
        <td>
<div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"response"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"@type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"type.googleapis.com/google.api.serviceusage.v1.EnableServiceResponse"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"<strong>service</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>name<strong>"</strong></strong></span><strong><strong><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"projects/232342569935/services/pubsub.googleapis.com"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>config</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"name"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"pubsub.googleapis.com"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"title"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Cloud Pub/Sub API"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"documentation"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-nt">"summary"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Provides reliable, many-to-many, asynchronous messaging between applications.\n"</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"quota"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{},</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"authentication"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{},</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"usage"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-nt">"requirements"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span>
<span class="devsite-syntax-w">          </span><span class="devsite-syntax-s2">"serviceusage.googleapis.com/tos/cloud"</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-p">]</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"monitoring"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{}</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<code translate="no" dir="ltr">state</code>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"ENABLED"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<code translate="no" dir="ltr">parent</code>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"projects/232342569935"</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">}</span></strong></strong></pre></devsite-code><strong><strong>
        </strong></strong></td>
      </tr>
    </tbody></table>
    </div>
    <p>The fields in bold show the mapping between the JSON Schema and the actual response.</p>
    <p>
      As shown in this example, schemas can contain references to other schemas. If you are building
      a client library, this can help you effectively model the objects of an API in your data model
      classes. In the <code translate="no" dir="ltr">EnableServiceResponse</code> example above, the <code translate="no" dir="ltr">service</code>
      property is a reference to a schema with ID <code translate="no" dir="ltr">GoogleApiServiceusageV1Service</code>,
      another schema in the Service Usage API Discovery document. You can substitute the
      <code translate="no" dir="ltr">GoogleApiServiceusageV1Service</code> property in the <code translate="no" dir="ltr">EnableServiceResponse</code>
      resource with the value of the <code translate="no" dir="ltr">GoogleApiServiceusageV1Service</code> schema
      (note that the <code translate="no" dir="ltr">$ref</code> syntax comes from the <a href="https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.28">JSON Schema
      spec</a>).
    </p>
    <p>
      Methods may also reference schemas when indicating their request and response bodies. Refer to
      the <a href="#discovery-doc-methods">Methods</a> section for more details.
    </p>

  <h3 id="methods" data-text="Methods" tabindex="-1">Methods</h3>
    <p>
      The core of the Discovery document is built around methods. Methods are the operations that
      can be performed on an API. You will find the <code translate="no" dir="ltr">methods</code> section in various areas of
      the Discovery document, including at the top level (which we call API-level methods) or at
      the <code translate="no" dir="ltr">resources</code> level.
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"<strong>methods</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-c1">// API-level methods</span>
<span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-nt">"<strong>resources</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"<var translate="no">resource1</var>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<var translate="no">methods</var>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-c1">// resource-level methods</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>resources</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"<var translate="no">nestedResource</var>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-nt">"<var translate="no">methods</var>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">          </span><span class="devsite-syntax-c1">// methods can even be found in nested-resources</span>
<span class="devsite-syntax-w">        </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
    <p>
      While an API <em>can</em> have API-level methods, a resource <em>must</em> have a
      <code translate="no" dir="ltr">methods</code> section.
    </p>
    <p>
      Each <code translate="no" dir="ltr">methods</code> section is a key-value map from method name to other details about
      that method. The example below documents three methods, <code translate="no" dir="ltr">get</code>, <code translate="no" dir="ltr">enable</code>
      and <code translate="no" dir="ltr">disable</code>:
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"methods"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"get"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">//details about the "get" method },</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"enable"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">//details about the "enable" method },</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"disable"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-c1">//details about the "disable" method }</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
    <p>
      Finally, each method's section details various properties about that method. Here is an
      example of the <code translate="no" dir="ltr">enable</code> method:
    </p>
<div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"enable"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"path"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"v1/{+name}:enable"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"request"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"$ref"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"EnableServiceRequest"</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"parameterOrder"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-s2">"name"</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">],</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"id"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"serviceusage.services.enable"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"response"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"$ref"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Operation"</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Enable a service so that it can be used with a project."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"httpMethod"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"POST"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"flatPath"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"v1/{v1Id}/{v1Id1}/services/{servicesId}:enable"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"scopes"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-s2">"https://www.googleapis.com/auth/cloud-platform"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-s2">"https://www.googleapis.com/auth/service.management"</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">],</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"parameters"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"name"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"location"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"path"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"description"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"Name of the consumer and service to enable the service on. The `EnableService` and `DisableService` methods currently only support projects. Enabling a service requires that the service is public or is shared with the user enabling the service. An example name would be: `projects/123/services/serviceusage.googleapis.com` where `123` is the project number."</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"required"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"type"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"string"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"pattern"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"^[^/]+/[^/]+/services/[^/]+$"</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">},</span></pre></devsite-code>
    <p>
      This section contains general method details such as a unique <code translate="no" dir="ltr">ID</code> to identify the
      method, the <code translate="no" dir="ltr">httpMethod</code> to use, and the <code translate="no" dir="ltr">path</code> of the method (for
      details on how to use the <code translate="no" dir="ltr">path</code> property to calculate the full method url, see the
      <a href="#build-compose">Compose a request</a> section). In addition to these general method
      properties, there are a few properties that connect the method with other sections in the Discovery document:
    </p>

  <h4 id="scopes" data-text="Scopes" tabindex="-1">Scopes</h4>
    <p>
      The <code translate="no" dir="ltr">auth</code> section defined earlier in this documentation contains information about
      all the scopes supported by a particular API. If a method supports one of these scopes, it will
      have a scopes array. There is one entry in this array for each scope supported by the method.
    </p><p>
      Note that choosing an auth scope to use in your application depends on various factors such as
      which methods are being called and what parameters are sent along with the method. Therefore,
      the decision of which scope to use is left to the developer. Discovery only documents which
      scopes are valid for a method.
    </p>

  <h4 id="request-and-response" data-text="Request and response" tabindex="-1">Request and response</h4>
    <p>
      If the method has a request or response body, these are documented in the <code translate="no" dir="ltr">request</code>
      or <code translate="no" dir="ltr">response</code> sections, respectively. For example, for the <code translate="no" dir="ltr">enable</code>
      method, the content of the <code translate="no" dir="ltr">request</code> section indicates that the method's request is
      defined by a JSON schema with an ID of <code translate="no" dir="ltr">EnableServiceRequest</code>. This schema can be
      found in the top-level schemas section.
    </p>

  <h4 id="parameters" data-text="Parameters" tabindex="-1">Parameters</h4>
    <p>
      If a method has parameters that should be specified by the user, these parameters are
      documented in the method-level <code translate="no" dir="ltr">parameters</code> section. This section contains a
      key/value mapping of the parameter name to more details about that parameter.
    </p>
    <p>
      For example, there's one parameter for the <code translate="no" dir="ltr">enable</code> method: <code translate="no" dir="ltr">name</code>.
      Parameters can either go in the <code translate="no" dir="ltr">path</code> or the URL <code translate="no" dir="ltr">query</code>; the
      <code translate="no" dir="ltr">location</code> property indicates where the client library should put the parameter.
    </p>
    <p>
      There are many other properties describing the parameter, including the parameter data
      <code translate="no" dir="ltr">type</code> (useful for strongly-typed languages), whether the parameter is
      <code translate="no" dir="ltr">required</code>, and whether the parameter is an enum. See the reference documentation
      for this API for more details about these properties.
    </p>

    <p><strong>Parameter order</strong></p>
    <p>
      There are many ways for client libraries to structure their interfaces. One way is to have a
      method with each API parameter in the method signature. However, since JSON is an unordered
      format, it's difficult to know programmatically how to order the parameters in the method
      signature. The <code translate="no" dir="ltr">parameterOrder</code> array provides a fixed parameter ordering for
      making requests. The array lists the name of each parameter in order of significance; it can
      contain either path or query parameters, but every parameter in the array is required.
    </p>

  <h4 id="media-upload" data-text="Media upload" tabindex="-1">Media upload</h4>
    <p>
      If a method supports uploading media, such as images, audio, or video, then the location and
      protocols supported for uploading that media are documented in the <code translate="no" dir="ltr">mediaUpload</code>
      section. This section contains details about which upload protocols are supported, and
      information about what kinds of media can be uploaded.
    </p>
    <p>
      The <code translate="no" dir="ltr">enable</code> method doesn't contain a <code translate="no" dir="ltr">mediaUpload</code> section. However, a
      typical <code translate="no" dir="ltr">mediaUpload</code> section might look like the following:
</p><div></div><devsite-code><pre class="devsite-click-to-copy devsite-code-highlight" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"<strong>supportsMediaUpload</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-nt">"<strong>mediaUpload</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"<strong>accept</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">[</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-s2">"image/*"</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">],</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"<strong>maxSize</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"10MB"</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-nt">"<strong>protocols</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>simple</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"<strong>multipart</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"<strong>path</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"/upload/storage/v1beta1/b/{bucket}/o"</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">},</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-nt">"<strong>resumable</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-p">{</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"<strong>multipart</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span>
<span class="devsite-syntax-w">      </span><span class="devsite-syntax-nt">"<strong>path</strong>"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-s2">"/resumable/upload/storage/v1beta1/b/{bucket}/o"</span>
<span class="devsite-syntax-w">    </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-w">  </span><span class="devsite-syntax-p">}</span>
<span class="devsite-syntax-p">}</span></pre></devsite-code>
    <p>
      In the example above, the <code translate="no" dir="ltr">supportsMediaUpload</code> property is a boolean value that
      determines if the method supports uploading media. If the value is true then the
      <code translate="no" dir="ltr">mediaUpload</code> section documents the kinds of media that can be uploaded.
    </p>
    <p>
      The <code translate="no" dir="ltr">accept</code> property is a list of <a href="https://tools.ietf.org/html/rfc2616#section-14.1">media-ranges</a> that determine which
      mime-types are acceptable to upload. The endpoint shown in the example above will accept any
      image format.
    </p>
    <p>
      The <code translate="no" dir="ltr">maxSize</code> property has the maximum size of an upload. The value is a string in
      units of MB, GB or TB. In the example above, uploads are limited to a maximum size of 10 MB.
      Note that this value doesn't reflect an individual user's remaining storage quota for that
      API, so even if the upload is less than <code translate="no" dir="ltr">maxSize</code> the client library should still
      be prepared to handle an upload that fails because of insufficient space.
    </p>
    <p>
      The <code translate="no" dir="ltr">protocols</code> section lists the upload protocols that a method supports. The
      <code translate="no" dir="ltr">simple</code> protocol is simply POSTing the media to the given endpoint in a single
      HTTP request. The <code translate="no" dir="ltr">resumable</code> protocol implies that the endpoint given in the
      <code translate="no" dir="ltr">path</code> URI supports the <a href="/drive/manage-uploads#resumable">resumable upload
      protocol</a>. If the <code translate="no" dir="ltr">multipart</code> property is <code translate="no" dir="ltr">true</code> then the endpoint
      accepts multipart uploads, which means both the JSON request and the media can be wrapped
      together in a <a href="https://tools.ietf.org/html/rfc2387">mutlipart/related</a> body and sent
      together. Note that both <code translate="no" dir="ltr">simple</code> and <code translate="no" dir="ltr">resumable</code> protocols may support
      multipart uploads.
    </p>
    <p>
      The <code translate="no" dir="ltr">path</code> property is a URI Template and should be expanded just like the
      <code translate="no" dir="ltr">path</code> property for the method, as outlined in the <a href="#build-compose">Compose
      a request</a> section.
    </p>

  <h4 id="media-download" data-text="Media download" tabindex="-1">Media download</h4>
    <p>
      If a method supports downloading media, such as images, audio, or video, then that is indicated
      by the <code translate="no" dir="ltr">supportsMediaDownload</code> parameter:
    </p>
    <div></div><devsite-code><pre class="devsite-click-to-copy" translate="no" dir="ltr" is-upgraded="" syntax="JSON"><span class="devsite-syntax-nt">"supportsMediaDownload"</span><span class="devsite-syntax-p">:</span><span class="devsite-syntax-w"> </span><span class="devsite-syntax-kc">true</span><span class="devsite-syntax-p">,</span></pre></devsite-code>
    <p>
      When downloading media you must set the <code translate="no" dir="ltr">alt</code> query parameter to <code translate="no" dir="ltr">media</code>
      in the request URL.
    </p>
    <p>
      If the <code translate="no" dir="ltr">useMediaDownloadService</code> property of the API method is <code translate="no" dir="ltr">true</code>,
      insert <code translate="no" dir="ltr">/download</code> before <code translate="no" dir="ltr">servicePath</code> to avoid a redirect. For example,
      the download path is <code translate="no" dir="ltr">/download/youtube/v3/captions/{id}</code> if the concatenation of
      <code translate="no" dir="ltr">servicePath</code> and <code translate="no" dir="ltr">path</code> is <code translate="no" dir="ltr">/youtube/v3/captions/{id}</code>. It is
      recommended to construct media download URL with <code translate="no" dir="ltr">/download</code> even when
      <code translate="no" dir="ltr">useMediaDownloadService</code> is false.
    </p>
    <aside class="note">
      <strong>Note:</strong> It is allowed for one API method to support both media download and
      upload. Request URL construction logic for media upload and download works independently and
      does not interfere with each other. As a result, such API method will have one
      <code translate="no" dir="ltr">/download/...</code> url for media download and one <code translate="no" dir="ltr">/upload/...</code> url for
      media uploading. However, one cannot do media upload and download in one single request.
    </aside>

  <h3 id="common-parameters" data-text="Common parameters" tabindex="-1">Common parameters</h3>
    <p>
      The top-level Discovery document contains a <code translate="no" dir="ltr">parameters</code> property. This section is
      similar to the <a href="#discovery-doc-methods-parameters">parameters section for each
      method</a>, however these parameters can be applied to any method in the API.
    </p>
    <p>
      For example, the <code translate="no" dir="ltr">get</code> and <code translate="no" dir="ltr">list</code> methods of the Service Usage API can
      have a <code translate="no" dir="ltr">prettyPrint</code> parameter in the request parameters, which will format the
      response for all those methods in a human-readable format. Here's a list of common parameters:
    </p>
    <table>
      <tbody><tr>
        <th>Parameter</th>
        <th>Meaning</th>
        <th>Notes</th>
        <th>Applicability</th>
      </tr>
      <tr>
        <td id="oa_token"><code translate="no" dir="ltr">access_token</code></td>
        <td>OAuth&nbsp;2.0 token for the current user.</td>
        <td><ul>
          <li>
            <a href="/identity/protocols/OAuth2">One possible way</a> to provide an OAuth&nbsp;2.0
            token.</li>
        </ul>
        </td>
      </tr>
      <tr>
        <td id="alt"><code translate="no" dir="ltr">alt</code></td>
        <td><p>Data format for the response.</p></td>
        <td><ul>
          <li>Valid values: <code translate="no" dir="ltr">json</code>, <code translate="no" dir="ltr">atom</code>, <code translate="no" dir="ltr">csv</code>. </li>
          <li>Default value: varies per API.</li>
          <li>Not all values are available for every API.</li>
        </ul></td>
        <td rowspan="6"><ul>
          <li>Applies to all operations for all resources.</li>
        </ul></td>
      </tr>
      <tr>
        <td id="callback"><code translate="no" dir="ltr">callback</code></td>
        <td>Callback function.</td>
        <td><ul>
          <li>Name of the JavaScript callback function that handles the response.</li>
          <li>
            Used in JavaScript <a href="https://en.wikipedia.org/wiki/JSONP">JSON-P</a>
            requests.
          </li>
        </ul>
      </td>
      </tr>
      <tr>
        <td id="fields"><code translate="no" dir="ltr">fields</code></td>
        <td>Selector specifying a subset of fields to include in the response.</td>
        <td>
          <ul>
            <li>Use for better performance.</li>
          </ul>
        </td>
      </tr>
      <tr>
        <td id="key"><code translate="no" dir="ltr">key</code></td>
        <td>
          API key. <span class="required">(REQUIRED)</span><a href="https://code.google.com/apis/console/"></a>
        </td>
        <td>
          <ul>
            <li>Required unless you provide an OAuth&nbsp;2.0 token.</li>
            <li>
              Your <a href="/console-help#WhatIsKey">API key</a> identifies your project and
              provides you with API access, quota, and reports.
            </li>
            <li>
              Obtain your project's API key from the <a href="https://code.google.com/apis/console/">APIs console</a>.
            </li>
          </ul>
        </td>
      </tr>
      <tr>
        <td id="pp"><code translate="no" dir="ltr">prettyPrint</code></td>
        <td>Returns response with identations and line breaks.</td>
        <td>
          <ul>
            <li>Returns the response in a human-readable format if <code translate="no" dir="ltr">true</code>. </li>
            <li>Default value: varies per API.</li>
            <li>
              When this is <code translate="no" dir="ltr">false</code>, it can reduce the response payload size, which might
              lead to better performance in some environments.
            </li>
          </ul>
        </td>
      </tr>
      <tr>
        <td id="quotaUser"><code translate="no" dir="ltr">quotaUser</code></td>
        <td>Alternative to <code translate="no" dir="ltr">userIp</code>.</td>
        <td>
          <ul>
            <li>
              Lets you enforce per-user quotas from a server-side application even in cases when the
              user's IP address is unknown. This can occur, for example, with applications that run
              cron jobs on App Engine on a user's behalf.
            </li>
            <li>
              You can choose any arbitrary string that uniquely identifies a user, but it is limited
              to 40 characters.
            </li>
            <li>Overrides <code translate="no" dir="ltr">userIp</code> if both are provided.</li>
            <li>Learn more about <a href="/console-help#cappingusage">capping usage</a>.</li>
          </ul>
        </td>
      </tr>
      <tr>
        <td id="userIp"><code translate="no" dir="ltr">userIp</code></td>
        <td>IP address of the end user for whom the API call is being made.</td>
        <td>
          <ul>
            <li>
              Lets you enforce per-user quotas when calling the API from a server-side
              application.
            </li>
            <li>Learn more about <a href="/console-help#cappingusage">capping usage</a>.</li>
          </ul>
        </td>
      </tr>
    </tbody></table>

  <h3 id="inline-documentation" data-text="Inline documentation" tabindex="-1">Inline documentation</h3>
    <p>
      Each Discovery document is annotated with a number of <code translate="no" dir="ltr">description</code> fields that
      provide inline documentation for the API. The <code translate="no" dir="ltr">description</code> fields can be found for
      the following API elements:
    </p>
    <ul>
      <li>API itself</li>
      <li>OAuth scopes</li>
      <li>Resource schemas</li>
      <li>API Methods</li>
      <li>Method parameters</li>
      <li>Acceptable values for certain parameters</li>
    </ul>
    <p>
      These fields are especially useful if you wish to use the Google APIs Discovery Service to generate human
      readable documentation for a client library—for example, JavaDoc.
    </p>
  

  
    <devsite-hats-survey class="nocontent" data-nosnippet="" hats-id="mwETRvWii0eU5NUYprb0Y9z5GVbc" listnr-id="83405"></devsite-hats-survey>
  

  
</div>

  
    
    
      
    <devsite-thumb-rating position="footer">
    </devsite-thumb-rating>
  
       
    
    
  

  <div class="devsite-floating-action-buttons"></div></article>


<devsite-content-footer class="nocontent" data-nosnippet="">
  <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p>
  <p>Last updated 2025-06-16 UTC.</p>
</devsite-content-footer>


<devsite-notification>
</devsite-notification>


  
<div class="devsite-content-data">
  
  
    <template class="devsite-content-data-template">
      [[["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-06-16 UTC."],[],[]]
    </template>
  
</div>
            
          </devsite-content>
        </main>
        <devsite-footer-promos class="devsite-footer">
          
            
          
        </devsite-footer-promos>
        <devsite-footer-linkboxes class="devsite-footer">
          
            
<nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links" data-nosnippet="">
  
  <ul class="devsite-footer-linkboxes-list">
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Products and pricing</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/products/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-module="footer" track-type="footer link" track-metadata-child_headline="products and pricing" track-metadata-position="footer" track-metadata-eventdetail="cloud.google.com/products/" track-name="see all products">
            
          
            See all products
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/pricing/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-module="footer" track-name="google cloud pricing" track-metadata-position="footer" track-metadata-eventdetail="cloud.google.com/pricing/" track-type="footer link" track-metadata-child_headline="products and pricing">
            
          
            Google Cloud pricing
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/marketplace/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-eventdetail="cloud.google.com/marketplace/" track-type="footer link" track-name="google cloud marketplace" track-metadata-child_headline="resources" track-metadata-module="footer" track-metadata-position="footer">
            
          
            Google Cloud Marketplace
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/contact/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-position="footer" track-metadata-module="footer" track-metadata-eventdetail="cloud.google.com/contact/" track-type="footer link" track-metadata-child_headline="engage" track-name="contact sales">
            
              
              
            
          
            Contact sales
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Support</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//discuss.google.dev/c/google-cloud/14/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" rel="noopener" track-metadata-module="footer" track-name="google cloud community" track-metadata-position="footer" target="_blank" track-metadata-child_headline="engage" track-type="footer link" track-metadata-eventdetail="www.googlecloudcommunity.com">
            
          
            Community forums
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/support-hub/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-position="footer" track-metadata-module="footer" track-metadata-child_headline="resources" track-metadata-eventdetail="cloud.google.com/support-hub/" track-name="support" track-type="footer link">
            
          
            Support
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//docs.cloud.google.com/release-notes" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-name="release notes" track-metadata-position="footer" track-type="footer link" track-metadata-eventdetail="cloud.google.com/release-notes/" track-metadata-module="footer" track-metadata-child_headline="resources">
            
          
            Release Notes
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//status.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-module="footer" track-metadata-position="footer" target="_blank" track-type="footer link" track-metadata-eventdetail="status.cloud.google.com" track-metadata-child_headline="resources" track-name="system status">
            
              
              
            
          
            System status
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Resources</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//github.com/googlecloudPlatform/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-position="footer" track-type="footer link" track-metadata-module="footer" track-metadata-eventdetail="github.com/googlecloudPlatform/" track-name="github" track-metadata-child_headline="resources">
            
          
            GitHub
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="/docs/get-started/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-name="google cloud quickstarts" track-metadata-child_headline="resources" track-type="footer link" track-metadata-position="footer" track-metadata-eventdetail="cloud.google.com/docs/get-started/" track-metadata-module="footer">
            
          
            Getting Started with Google Cloud
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="/docs/samples" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-metadata-position="footer" track-name="code samples" track-type="footer link" track-metadata-child_headline="resources" track-metadata-module="footer" track-metadata-eventdetail="cloud.google.com/docs/samples">
            
          
            Code samples
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="/architecture/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-type="footer link" track-metadata-position="footer" track-metadata-module="footer" track-name="cloud architecture center" track-metadata-child_headline="resources" track-metadata-eventdetail="cloud.google.com/architecture/">
            
          
            Cloud Architecture Center
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/learn/training/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" track-metadata-module="footer" track-type="footer link" track-metadata-eventdetail="cloud.google.com/learn/training/" track-metadata-position="footer" track-metadata-child_headline="resources" track-name="training">
            
              
              
            
          
            Training and Certification
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
    <li class="devsite-footer-linkbox ">
    <h3 class="devsite-footer-linkbox-heading no-link">Engage</h3>
      <ul class="devsite-footer-linkbox-list">
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/blog/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" track-metadata-eventdetail="cloud.google.com/blog/" track-metadata-child_headline="engage" track-metadata-module="footer" track-name="blog" track-type="footer link" track-metadata-position="footer">
            
          
            Blog
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//cloud.google.com/events/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" track-metadata-eventdetail="cloud.google.com/events/" track-metadata-child_headline="engage" track-metadata-module="footer" track-type="footer link" track-name="events" track-metadata-position="footer">
            
          
            Events
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//x.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" track-type="footer link" target="_blank" track-metadata-child_headline="engage" track-metadata-module="footer" rel="noopener" track-name="follow on x" track-metadata-position="footer" track-metadata-eventdetail="x.com/googlecloud">
            
          
            X (Twitter)
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//www.youtube.com/googlecloud" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" track-metadata-position="footer" track-metadata-eventdetail="www.youtube.com/googlecloud" target="_blank" track-metadata-module="footer" rel="noopener" track-type="footer link" track-metadata-child_headline="engage" track-name="google cloud on youtube">
            
          
            Google Cloud on YouTube
          
          </a>
          
          
        </li>
        
        <li class="devsite-footer-linkbox-item">
          
          <a href="//www.youtube.com/googlecloudplatform" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" rel="noopener" track-metadata-position="footer" track-metadata-eventdetail="www.youtube.com/googlecloudplatform" track-type="footer link" track-metadata-child_headline="engage" track-metadata-module="footer" track-name="google cloud tech on youtube" target="_blank">
            
              
              
            
          
            Google Cloud Tech on YouTube
          
          </a>
          
          
        </li>
        
      </ul>
    </li>
    
  </ul>
  
</nav>
          
        </devsite-footer-linkboxes>
        <devsite-footer-utility class="devsite-footer">
          
            

<div class="devsite-footer-utility nocontent" data-nosnippet="">
  

  
  <nav class="devsite-footer-utility-links" aria-label="Utility links">
    
    <ul class="devsite-footer-utility-list">
      
      <li class="devsite-footer-utility-item
                 ">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="//about.google/" data-category="Site-Wide Custom Events" data-label="Footer About Google link" track-name="about google" track-type="footer link" track-metadata-eventdetail="//about.google/" track-metadata-module="utility footer" track-metadata-position="footer" target="_blank">
          About Google
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 devsite-footer-privacy-link">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" track-type="footer link" track-metadata-module="utility footer" track-name="privacy" track-metadata-position="footer" target="_blank" track-metadata-eventdetail="//policies.google.com/privacy">
          Privacy
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 ">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/terms?hl=en" data-category="Site-Wide Custom Events" data-label="Footer Site terms link" track-metadata-module="utility footer" target="_blank" track-metadata-eventdetail="//www.google.com/intl/en/policies/terms/regional.html" track-type="footer link" track-name="site terms" track-metadata-position="footer">
          Site terms
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 ">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="//cloud.google.com/product-terms" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud terms link" track-metadata-position="footer" track-metadata-module="utility footer" track-metadata-eventdetail="//cloud.google.com/product-terms" track-type="footer link" track-name="google cloud terms">
          Google Cloud terms
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 glue-cookie-notification-bar-control">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" track-metadata-eventdetail="#" track-name="Manage cookies" track-metadata-position="footer" aria-hidden="true" track-type="footer link" track-metadata-module="utility footer">
          Manage cookies
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 devsite-footer-carbon-button">
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="//cloud.google.com/sustainability" data-category="Site-Wide Custom Events" data-label="Footer Our third decade of climate action: join us link" track-metadata-position="footer" track-name="Our third decade of climate action: join us" track-metadata-module="utility footer" track-metadata-eventdetail="/sustainability/" track-type="footer link">
          Our third decade of climate action: join us
        </a>
        
      </li>
      
      <li class="devsite-footer-utility-item
                 devsite-footer-utility-button">
        
        <span class="devsite-footer-utility-description">Sign up for the Google Cloud newsletter</span>
        
        
        <a class="devsite-footer-utility-link gc-analytics-event" href="//cloud.google.com/newsletter/" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" track-type="footer link" track-metadata-position="footer" track-metadata-module="utility footer" track-name="subscribe" track-metadata-eventdetail="/newsletter/">
          Subscribe
        </a>
        
      </li>
      
    </ul>
    
    
<devsite-language-selector>
  <ul role="presentation">
    
    
    <li role="presentation">
      <a role="menuitem" lang="en">English</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="de">Deutsch</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es">Español</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="es_419">Español – América Latina</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="fr">Français</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="id">Indonesia</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="it">Italiano</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt">Português</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="pt_br">Português – Brasil</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="he">עברית</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_cn">中文 – 简体</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="zh_tw">中文 – 繁體</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ja">日本語</a>
    </li>
    
    <li role="presentation">
      <a role="menuitem" lang="ko">한국어</a>
    </li>
    
  </ul>
</devsite-language-selector>

  </nav>
</div>
          
        </devsite-footer-utility>
        <devsite-panel>
          
        </devsite-panel>
        
      </section>
      </section>
    <devsite-sitemask></devsite-sitemask>
    <devsite-snackbar></devsite-snackbar>
    <devsite-tooltip></devsite-tooltip>
    <devsite-heading-link></devsite-heading-link>
    <devsite-analytics>
      
        <script type="application/json" analytics="">[]</script>
<script type="application/json" tag-management="">{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [], &#34;ga4p&#34;: [], &#34;gtm&#34;: [{&#34;id&#34;: &#34;GTM-5CVQBG&#34;, &#34;purpose&#34;: 1}], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;Google APIs Discovery Service&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;clouddocs&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script>
      
    </devsite-analytics>
    
      <devsite-badger></devsite-badger>
    
    
    
<cloudx-user></cloudx-user>




  
    <cloudx-free-trial-eligible-store freetrialeligible="true"></cloudx-free-trial-eligible-store>
  

    
<script nonce="kjP2Mph3+U7NmvWU3UNc0vuMyXuoyI">
  
  (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i;
    t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0];
    E.parentNode.insertBefore(t,E);})(window, document, 'script',
    'https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/js/app_loader.js', '[39,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687","https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs","https://clouddocs-dot-devsite-v2-prod.appspot.com",null,null,["/_pwa/clouddocs/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/favicons/onecloud/favicon.ico","https://www.gstatic.com/devrel-devsite/prod/v25f01968170374b7bd062a383d0367da1beee7ed413abaee67eec4296f4ba687/clouddocs/images/lockup_full_color.svg","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,116,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","docs.cloud.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["Cloud__enable_legacy_calculator_redirect","MiscFeatureFlags__fix_lower_breadcrumbs","DevPro__enable_embed_profile_creation","Profiles__enable_page_saving","Search__enable_suggestions_from_borg","Search__enable_dynamic_content_confidential_banner","DevPro__enable_g1_ineligible_redirect","Concierge__enable_actions_menu","Concierge__enable_remove_info_panel_tags","DevPro__enable_g1_integration","MiscFeatureFlags__remove_cross_domain_tracking_params","OnSwitch__enable","MiscFeatureFlags__enable_explain_this_code","Profiles__enable_targeted_hero","MiscFeatureFlags__developers_footer_image","DevPro__enable_devsite_captcha","Concierge__enable_pushui","Experiments__reqs_query_experiments","Search__enable_ai_eligibility_checks","MiscFeatureFlags__enable_firebase_utm","Analytics__enable_clearcut_logging","CloudShell__cloud_shell_button","Profiles__enable_user_type","DevPro__enable_enterprise","Profiles__enable_auto_apply_credits","CloudShell__cloud_code_overflow_menu","Profiles__enable_completecodelab_endpoint","Profiles__enable_playlist_community_acl","Concierge__enable_devsite_llm_tools","Search__enable_page_map","Profiles__enable_purchase_prompts","SignIn__enable_l1_signup_flow","DevPro__enable_google_one_card","MiscFeatureFlags__enable_variable_operator_index_yaml","Cloud__fast_free_trial","MiscFeatureFlags__developers_footer_dark_image","MiscFeatureFlags__enable_variable_operator","MiscFeatureFlags__enable_view_transitions","DevPro__remove_eu_tax_intake_form","DevPro__enable_code_assist","Cloud__enable_cloud_dlp_service","Profiles__enable_join_program_group_endpoint","AIStudioInteractionsToggle__interactions_are_default","EngEduTelemetry__enable_engedu_telemetry","Cloud__enable_cloud_shell","BookNav__enable_tenant_cache_key","Cloud__enable_cloud_shell_fte_user_flow","DevPro__enable_cloud_innovators_plus","Profiles__enable_recognition_badges","Cloud__enable_cloudx_experiment_ids","Concierge__enable_concierge_restricted","DevPro__enable_google_payments_buyflow","MiscFeatureFlags__enable_explicit_template_dependencies","Profiles__enable_developer_profile_benefits_ui_redesign","TpcFeatures__enable_unmirrored_page_left_nav","DevPro__enable_firebase_workspaces_card","MiscFeatureFlags__gdp_dashboard_reskin_enabled","Profiles__enable_awarding_url","Profiles__enable_complete_playlist_endpoint","DevPro__enable_payments_first_batch","TpcFeatures__proxy_prod_host","Profiles__require_profile_eligibility_for_signin","MiscFeatureFlags__enable_project_variables","DevPro__enable_devpro_offers","DevPro__enable_credits_banner","DevPro__enable_nvidia_credits_card","Profiles__enable_public_developer_profiles","DevPro__enable_vertex_credit_card","Profiles__enable_dashboard_curated_recommendations","Profiles__enable_callout_notifications","DevPro__enable_developer_subscriptions","Profiles__enable_developer_profiles_callout","Search__enable_ai_search_summaries_for_all","Profiles__enable_stripe_subscription_management","MiscFeatureFlags__enable_framebox_badge_methods","Profiles__enable_completequiz_endpoint","Cloud__cache_serialized_dynamic_content","MiscFeatureFlags__enable_appearance_cookies","Profiles__enable_profile_collections","DevPro__enable_free_benefits","MiscFeatureFlags__enable_dark_theme","Profiles__enable_developer_profile_pages_as_content","Analytics__enable_devpro_interaction_logging","Cloud__enable_free_trial_server_call"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,1,"https://developerprofiles-pa.clients6.google.com",[39,"clouddocs","Google Cloud Documentation","docs.cloud.google.com",null,"clouddocs-dot-devsite-v2-prod.appspot.com",null,null,[1,1,null,null,null,null,null,null,null,null,null,[1],null,null,null,null,null,1,[1],[null,null,null,[1,20],"/terms/recommendations"],[1],null,[1],[1,null,1],null,[1]],null,[54,null,null,null,null,null,"/images/lockup_full_color.svg","/images/favicons/onecloud/apple-icon.png",null,null,null,1,1,1,1,null,[],null,null,[[],[],[],[],[],[],[],[]],null,1,null,null,null,"/images/lockup_dark_theme.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,22,23,29,37],null,[[null,null,null,null,null,null,[1,[["docType","Choose a content type",[["ApiReference",null,null,null,null,null,null,null,null,"API reference"],["Sample",null,null,null,null,null,null,null,null,"Code sample"],["ReferenceArchitecture",null,null,null,null,null,null,null,null,"Reference architecture"],["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"Artificial intelligence and machine learning (AI/ML)"],["ApplicationDevelopment",null,null,null,null,null,null,null,null,"Application development"],["BigDataAndAnalytics",null,null,null,null,null,null,null,null,"Big data and analytics"],["Compute",null,null,null,null,null,null,null,null,"Compute"],["Containers",null,null,null,null,null,null,null,null,"Containers"],["Databases",null,null,null,null,null,null,null,null,"Databases"],["HybridCloud",null,null,null,null,null,null,null,null,"Hybrid and multicloud"],["LoggingAndMonitoring",null,null,null,null,null,null,null,null,"Logging and monitoring"],["Migrations",null,null,null,null,null,null,null,null,"Migrations"],["Networking",null,null,null,null,null,null,null,null,"Networking"],["SecurityAndCompliance",null,null,null,null,null,null,null,null,"Security and compliance"],["Serverless",null,null,null,null,null,null,null,null,"Serverless"],["Storage",null,null,null,null,null,null,null,null,"Storage"]]]]]],[1],null,1],[[null,null,null,null,null,["GTM-5CVQBG"],null,null,null,null,null,[["GTM-5CVQBG",2]],1],null,null,null,null,null,1],"mwETRvWii0eU5NUYprb0Y9z5GVbc",4],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m",1,1,"https://developerscontentinsights-pa.clients6.google.com","AIzaSyCg-ZUslalsEbXMfIo9ZP8qufZgo3LSBDU","AIzaSyDxT0vkxnY_KeINtA4LSePJO-4MAZPMRsE","https://developers.clients6.google.com",null,null,"AIzaSyBQom12tzI-rybN7Sf-KfeL4nwm-Rf7PmI\n",null,null,"https://developers.googleapis.com"]')
  
</script>

    <devsite-a11y-announce></devsite-a11y-announce>
  
</body></html>