For Developers‎ > ‎How-Tos‎ > ‎

API Keys

Important Note: This page is about building Chromium. If you have arrived on this page by searching for a specific API which you want to use for some other purpose, this is not the page you want. Do not email the chromium-dev list to ask how to get quota for an API; the section "Getting Keys for Your Chromium Derivative" below has the same answer you will get from the list. Do not email chromium-dev for quota questions about the Speech API.
Some features of Chromium use Google APIs, and to access those APIs, either an API Key or a set of OAuth 2.0 tokens is required. Setting up API keys is optional. If you don't do it, the specific APIs using Google services won't work in your custom build, but all other features will run normally.
If you build Chromium and Chromium OS yourself setting up API keys is mandatory so that it will allow user login on Chromebooks!

You can specify the API keys to use either when you build Chromium, or at runtime using environment variables. First, you need to acquire keys for yourself.

Software distribution with keys acquired for yourself is allowed, but the keys themselves cannot be shared with parties outside the legal entity that accepted the API ToS. Keep in mind that a number of the APIs will have no or very limited quota and not all of the APIs have additional quota available for purchase.

Acquiring Keys

  1. Make sure you are a member of (you can just subscribe to chromium-dev and choose not to receive mail). For convenience, the APIs below are only visible to people subscribed to that group.
  2. Make sure you are logged in with the Google account associated with the email address that you used to subscribe to chromium-dev.
  3. Go to
  4. Click the blue Create Project button.
  5. (Optional) You may add other members of your organization or team on the Team tab.
  6. In the 'APIs & auth' > APIs tab -> API Library tab, search for all of the following APIs. If you're a member of the chromeos-dev Google group you should see all of them. For each of these APIs click on them when found by the search, and then click on "Enable API" button at the top, read and agree to the Terms of Service that is shown, check the "I have read and agree to <API name> Terms of Service" checkbox and click Accept: (This list might be out of date; try searching for APIs starting with "Chrome" or having "for Chrome" in the name.)
    • Chrome Remote Desktop API
    • Chrome Spelling API
    • Chrome Suggest API
    • Chrome Sync API
    • Chrome Translate Element
    • Chrome Web Store API
    • Google Maps Geolocation API (requires enabling billing but is free to use; you can skip this one, in which case geolocation features of Chrome will not work)
    • Safe Browsing API
    • Speech API (See the Important Note at the top of the page)
    • Google Maps Time Zone API
    • Google Cloud Messaging for Chrome
    • Drive API (Optional, enable this for on Chrome OS and SyncFileSystem API)
    • Google Now For Chrome API (Optional, enabled to show Google Now cards)
    • Google+ API
    • Chrome OS Hardware ID API (Optional, Chrome OS)
    • Device Registration API (Optional, Chrome OS)
    If any of these APIs are not shown, recheck step 1.
  7. Go to the Credentials tab under the APIs & auth tab.
  8. Click the "Add credentials" button then click on the "OAuth 2.0 client ID" item in the drop-down list.
    • Click on the "Configure consent screen" button. Fill in the "Product name" (name it anything you want) and other details if you have available then click on "Save" at the bottom. 
    • Return to the Credentials tab and click the "Add credentials" button again, then select "OAuth 2.0 client ID" from the drop-down list.
    • In the "Application type" section check the "Other" option and give it a name in the "Name" text box, then click "Create"
  9. In the pop-up window that appears you'll see a client ID and a "client secret" string. Copy and paste those in a text file on your dev box then click OK to dismiss it.
    • A new item should now appear in the "OAuth 2.0 client IDs" list. You can click on the name of your client id to retrieve the ID and secret at any time. In the next sections, we will refer to the values of the “Client ID” and “Client secret” fields.
  10. Click the "Add credentials" button again on the same page.
    • In the pop-over window that shows up click the "Browser key" button.
    • Click on the "API key" item in the drop down list.
    • Fill in the name of the key or leave the default string there.
    • Leave the "Accept requests from these HTTP referrers (web sites) empty.
    • Click the "Create" button.
    • A pop-over should show up giving you the API key. Copy and paste it in a text file to save it, although you can access it later as well.
    • Click OK to dismiss this.
You should now have an API key and a OAuth 2.0 client ID in on the Credentials tab. The next sections will refer to the value of the “API key” field too.
  1. Note that the keys you have now acquired are not for distribution purposes and must not be shared with other users.

  2. Providing Keys at Build Time
If you are building Chromium yourself, you can provide keys as part of your build configuration, that way they are always baked into your binary. To do this, specify a few variables to gyp (there are three ways to do this; see the Setup section on this page). One easy way is to create, or edit, the file ~/.gyp/include.gypi (or C:\Users\yourusername\.gyp\include.gypi if you’re on Windows), with contents like the following:

 'variables': {
   'google_api_key':               'your_api_key',
   'google_default_client_id':     'your_client_id',
   'google_default_client_secret': 'your_client_secret',

   # … other variables you may have ...

where the text “(your API_KEY)” is replaced with your API_KEY value, and so forth. Once you’ve done this, run gclient sync or gclient runhooks, and your builds after that will use your keys. Note that the above is equivalent to providing more flags gyp, i.e. build/gyp_chromium -Dgoogle_api_key='...' -Dgoogle_default_client_id='...' -Dgoogle_default_client_secret='...'

Depending on the way you build Chromium, the latter may be more practical for you.

Providing Keys at Runtime
If you prefer, you can build a Chromium binary (or use a pre-built Chromium binary) without API keys baked in, and instead provide them at runtime. To do so, set the environment variables GOOGLE_API_KEY, GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET to your "API key", "Client ID" and "Client secret" values respectively.

On Chromium OS to specify the keys as environment variables append them to the end of /etc/chrome_dev.conf:

Getting Keys for Your Chromium Derivative
Many of the Google APIs used by Chromium code are specific to Google Chrome and not intended for use in derived products.  In the API Console ( you may be able to purchase additional quota for some of the APIs listed above.  For APIs that do not have a "Pricing" link, additional quota is not available for purchase.