Prerequisites
This document explains the prerequisites for using the Compute Engine API.
Before you can start coding your first client application, there are a few things you need to do,
if you haven't done them already.
Get a Google Account
You need a Google Account to access the
Compute Engine API. If you have an existing account, then you already have access.
You may also want a separate Google Account for testing purposes.
Sign up and try out Compute Engine
To get started, you can create a VM instance on Compute Engine by using one of the
following guides:
Before you continue, it's important to become familiar with Compute Engine. The API
documentation assumes that you have used Compute Engine and you're familiar with web
programming concepts and web data formats.
Learn about authentication
There are different ways to authenticate to Compute Engine depending on how you access
the API. For more information, see
Authenticate to Compute Engine.
Learn about REST
There are two ways to invoke the API:
If you decide not to use client libraries, you'll need to understand the basics of REST.
REST basics
REST is a style of software architecture that provides a convenient and consistent approach to requesting and modifying data.
The term REST is short for "Representational State Transfer." In the context of Google APIs, it refers to using HTTP verbs to retrieve and modify representations of data stored by Google.
In a RESTful system, resources are stored in a data store; a client sends a request that the server perform a particular action (such as creating, retrieving, updating, or deleting a resource), and the server performs the action and sends a response, often in the form of a representation of the specified resource.
In Google's RESTful APIs, the client specifies an action using an HTTP verb such as POST
, GET
, PUT
, or DELETE
. It specifies a resource by a globally-unique URI of the following form:
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
Because all API resources have unique HTTP-accessible URIs, REST enables data caching and is optimized to work with the web's distributed infrastructure.
You may find the method definitions in the HTTP 1.1 standards documentation useful; they include specifications for GET
, POST
, PUT
, and DELETE
.
REST in the Compute Engine API
The Compute Engine API operations map directly to REST HTTP verbs.
The Compute Engine API uses the following format for URIs:
https://www.googleapis.com/compute/API_VERSION/RESOURCE_PATH
The URI contains the following values:
API_VERSION
: the API version that you want to use, which corresponds
to the launch stage of a Compute Engine
resource as follows:
- For resources in GA:
v1
- For resources in Public Preview:
beta
- For resources in Private Preview:
alpha
RESOURCE_PATH
: the path to the specific Compute Engine
resource—for example, projects/example-project/aggregated/instances
. To
see available resources for each API version, see the following:
If you want to include query parameters, then include them in the URI after a question mark
(?
):
https://www.googleapis.com/compute/API_VERSION/RESOURCE_PATH?QUERY_PARAMETERS
In the URI, QUERY_PARAMETERS is a list of query parameters, separated by ampersands
(&
)—for example,
format=json&filter=zone=us-central1-a
.
The Compute Engine API returns data in JSON format.
JSON (JavaScript Object Notation) is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see json.org.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-07 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eA Google Account is required to access Compute Engine in the Google APIs Console, and you may want a separate one for testing.\u003c/p\u003e\n"],["\u003cp\u003eYou can create either a Linux or Windows VM instance to get started with Compute Engine, which is recommended for familiarization before using the API.\u003c/p\u003e\n"],["\u003cp\u003eAuthentication to Compute Engine varies depending on your method of API access, and details can be found in the documentation provided.\u003c/p\u003e\n"],["\u003cp\u003eThe Compute Engine API can be invoked through HTTP requests or by using client libraries, and using HTTP requests requires an understanding of REST principles.\u003c/p\u003e\n"],["\u003cp\u003eThe Compute Engine API uses RESTful architecture, with operations mapping directly to HTTP verbs, and the API returns data in JSON format.\u003c/p\u003e\n"]]],[],null,["# Prerequisites\n\nThis document explains the prerequisites for using the Compute Engine API.\n\nBefore you can start coding your first client application, there are a few things you need to do,\nif you haven't done them already.\n\nGet a Google Account\n--------------------\n\nYou need a [Google Account](https://www.google.com/accounts/NewAccount) to access the\nCompute Engine API. If you have an existing account, then you already have access.\n\nYou may also want a separate Google Account for testing purposes.\n\nSign up and try out Compute Engine\n----------------------------------\n\nTo get started, you can create a VM instance on Compute Engine by using one of the\nfollowing guides:\n\n- [Create a Linux VM](/compute/docs/create-linux-vm-instance)\n- [Create a Windows VM](/compute/docs/create-windows-server-vm-instance)\n\nBefore you continue, it's important to become familiar with Compute Engine. The API\ndocumentation assumes that you have used Compute Engine and you're familiar with web\nprogramming concepts and web data formats.\n\nLearn about authentication\n--------------------------\n\nThere are different ways to authenticate to Compute Engine depending on how you access\nthe API. For more information, see\n[Authenticate to Compute Engine](/compute/docs/authentication).\n\nLearn about REST\n----------------\n\nThere are two ways to invoke the API:\n\n- Sending HTTP requests and parsing the responses.\n- Using [client libraries](/compute/docs/api/libraries).\n\nIf you decide not to use client libraries, you'll need to understand the basics of REST.\n\n### REST basics\n\nREST is a style of software architecture that provides a convenient and consistent approach to requesting and modifying data.\n\nThe term REST is short for \"[Representational State Transfer](https://en.wikipedia.org/wiki/Representational_state_transfer).\" In the context of Google APIs, it refers to using HTTP verbs to retrieve and modify representations of data stored by Google.\n\nIn a RESTful system, resources are stored in a data store; a client sends a request that the server perform a particular action (such as creating, retrieving, updating, or deleting a resource), and the server performs the action and sends a response, often in the form of a representation of the specified resource.\n\nIn Google's RESTful APIs, the client specifies an action using an HTTP verb such as `POST`, `GET`, `PUT`, or `DELETE`. It specifies a resource by a globally-unique URI of the following form: \n\n```\nhttps://www.googleapis.com/apiName/apiVersion/resourcePath?parameters\n```\n\nBecause all API resources have unique HTTP-accessible URIs, REST enables data caching and is optimized to work with the web's distributed infrastructure.\n\nYou may find the [method definitions](https://tools.ietf.org/html/rfc7231#section-4.3) in the HTTP 1.1 standards documentation useful; they include specifications for `GET`, `POST`, `PUT`, and `DELETE`.\n\n### REST in the Compute Engine API\n\nThe Compute Engine API operations map directly to REST HTTP verbs.\n\nThe Compute Engine API uses the following format for URIs: \n\n```scdoc\nhttps://www.googleapis.com/compute/API_VERSION/RESOURCE_PATH\n```\n\nThe URI contains the following values:\n\n- \u003cvar translate=\"no\"\u003eAPI_VERSION\u003c/var\u003e: the API version that you want to use, which corresponds to the [launch stage](/products#product-launch-stages) of a Compute Engine resource as follows:\n - For resources in GA: `v1`\n - For resources in Public Preview: `beta`\n - For resources in Private Preview: `alpha`\n- \u003cvar translate=\"no\"\u003eRESOURCE_PATH\u003c/var\u003e: the path to the specific Compute Engine resource---for example, `projects/example-project/aggregated/instances`. To see available resources for each API version, see the following:\n - [Compute Engine API v1](/compute/docs/reference/rest/latest)\n - [Compute Engine API beta](/compute/docs/reference/rest/beta)\n - [Compute Engine API alpha](/compute/docs/reference/rest/alpha) ([Preview](/products#product-launch-stages))\n\n\u003cbr /\u003e\n\nIf you want to include query parameters, then include them in the URI after a question mark\n(`?`): \n\n```scdoc\nhttps://www.googleapis.com/compute/API_VERSION/RESOURCE_PATH?\u003cvar translate=\"no\"\u003eQUERY_PARAMETERS\u003c/var\u003e\n```\n\nIn the URI, \u003cvar translate=\"no\"\u003eQUERY_PARAMETERS\u003c/var\u003e is a list of query parameters, separated by ampersands\n(`&`)---for example,\n`format=json`**&**`filter=zone=us-central1-a`.\n\nLearn about the JSON data format\n--------------------------------\n\nThe Compute Engine API returns data in JSON format.\n\n\n[JSON](http://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation) is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see [json.org](http://www.json.org/).\n\n\u003cbr /\u003e"]]