The Google Cloud Storage JSON API is a simple, JSON-backed interface for accessing and manipulating Google Cloud Storage projects in a programmatic way. It has most of the same features as the Google Cloud Storage XML API, but it is fully compatible with the Google APIs Client Libraries.
The Google Cloud Storage JSON API is intended for software developers. To use it you should be familiar with web programming and be comfortable creating applications that consume web services through HTTP requests. If this does not describe you, consider one of the following alternatives:
If you are just starting out with Google Cloud Storage, you should first try either the Getting Started: Using the Cloud Platform Console or Getting Started: Using the gsutil Tool. These tutorials demonstrate the basics of using Google Cloud Storage without the need to use the API directly.
If you are not a software developer and want to store your personal data in the cloud and share it with others, you can use Google Drive.
Activating the API
For new projects, the Google Cloud Storage JSON API is activated by default, and it can be used immediately. Note that you must enable billing for your project before that project can create buckets. All other operations will work immediately.
For existing projects: Enable the Cloud Storage API.
Encoding URI path parts
You should encode any URI path parts that contain unsafe characters and the slash character when specifying them in request URIs. For example, if you send a GET request for the object named "foo/?bar" in the bucket "example-bucket", then your request URI should be:
You do not have to encode the following URI path characters:
Unreserved alphanumeric characters ("A"-"Z", "a"-"z", "0"-"9")
Unreserved non-alphanumeric characters ("-", ".", "_", "~")
Sub-delims ("!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "=")
Colons (":") and at-signs ("@")
For more information about using percent-encoded for URIs, see Section 3.3 Path in RFC 3986, Uniform Resource Identifier (URI): Generic Syntax. Note that encoding is typically handled for you by client libraries, so you can pass the raw object name to them. For more information about object naming conventions, see object name requirements.
Bucket name requirements specify that no characters requiring encoding are allowed in a bucket name.