canonical: https://jentic.com/apis/googleapis.com/storage

# Google Cloud Storage JSON API

The Cloud Storage JSON API manages buckets and objects on Google Cloud Storage. It covers bucket lifecycle and configuration (location, storage class, retention policy, CORS, lifecycle rules, IAM), object operations (insert, get, list, copy, compose, rewrite, delete), ACL management at both bucket and object level, HMAC keys for interoperable access, notifications to Pub/Sub, and Anywhere Cache resources for low-latency regional reads. Object content uploads use the dedicated upload host with multipart or resumable protocols.

## For AI agents

Upload, download, copy, and manage objects in Google Cloud Storage buckets. Configure bucket lifecycle, IAM, retention, and Pub/Sub notifications.

## Scope

Does not handle relational queries, block storage volumes, or end-user file sharing UI - use for managing buckets and immutable objects in Google Cloud Storage only.

## Capabilities

- Create, list, update, and delete Cloud Storage buckets with chosen storage class and location
- Upload, download, copy, compose, and rewrite objects within and across buckets
- Manage bucket and object ACLs and IAM policies at fine granularity
- Configure lifecycle rules, retention policies, and object versioning on a bucket
- Register Pub/Sub notifications to receive events when objects change
- Manage HMAC keys for S3-compatible interoperable access to a bucket
- Provision Anywhere Cache resources for low-latency regional reads of distant buckets

## Use cases

### Static Asset Hosting

Host product images, JavaScript bundles, and static HTML in a public Cloud Storage bucket fronted by a CDN. The Storage JSON API exposes bucket creation with website settings, object insert with cache-control metadata, and IAM policy management to make objects publicly readable. Lifecycle rules can transition cold assets to cheaper storage classes automatically.

Example prompt: POST /b with name=static.example.com, location=US, then upload index.html via the upload host with cacheControl='public, max-age=300'.

### Lakehouse Ingestion

Ingest source files into a Cloud Storage data lake by uploading partitioned objects under date-prefixed paths, then publish a Pub/Sub notification on each new object so downstream pipelines pick them up. The API supports object insert, list-with-prefix for catalog scans, and notifications for change events.

Example prompt: Upload events_2026-06-10.parquet under bucket 'events-raw' with prefix 'date=2026-06-10/', then POST /b/events-raw/notificationConfigs with topic=projects/p/topics/raw-events.

### Compliance Retention

Apply a bucket-level retention policy that locks objects against deletion for the regulatory retention window. The Storage JSON API exposes retentionPolicy with both a soft retention period and a lock action that makes the policy permanent for compliance officers' sign-off.

Example prompt: PATCH /b/audit-logs with retentionPolicy.retentionPeriod=2592000 (30d), then POST /b/audit-logs/lockRetentionPolicy.

### AI Agent Document Workflow

An AI agent processing a user's uploaded contracts uploads each document to a Cloud Storage bucket, then triggers downstream extraction. Through Jentic, the agent searches for the upload operation, loads the schema, and executes - Jentic handles auth so the agent never sees the underlying access token.

Example prompt: Search Jentic for 'upload a file to Cloud Storage', execute the object insert call against bucket 'contracts' with the file content and contentType='application/pdf'.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /b | List buckets in a project |
| POST | /b | Create a new bucket |
| GET | /b/{bucket} | Get a bucket's metadata |
| GET | /b/{bucket}/acl | List the ACL entries on a bucket |
| GET | /b/{bucket}/folders | List folders in a hierarchical-namespace bucket |
| GET | /b/{bucket}/anywhereCaches | List Anywhere Cache resources on a bucket |
| POST | /b/{bucket}/anywhereCaches/{anywhereCacheId}/pause | Pause an Anywhere Cache resource |

## Key resources

- **buckets** — Create, list, update, and delete buckets; manage IAM, lifecycle, retention, and notification configurations.
- **objects** — Upload, download, list, copy, compose, rewrite, and delete objects.
- **objectAccessControls** — Manage per-object ACLs.
- **hmacKeys** — Create, list, update, and delete HMAC keys for S3-compatible access.
- **anywhereCaches** — Provision regional caches for low-latency access to objects in distant buckets.

## Why Jentic

- **Setup:** Wiring the Cloud Storage JSON API by hand means configuring a service account, minting OAuth access tokens against the storage.googleapis.com/storage/v1 host, and refreshing them yourself. Through Jentic you install once, import the Cloud Storage JSON API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** Cloud Storage puts the bucket in the URL path (/b/{bucket}, /b/{bucket}/acl), so a rule can pin your agent to one bucket: it can read the bucket, its ACLs, and its folders and nothing else. You choose the operations it may call, so creating buckets or pausing caches is not included unless you add them.
- **Credential handling:** Your Cloud Storage OAuth credential is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'upload a file to Cloud Storage' or 'list objects in a bucket', and Jentic returns the matching Cloud Storage operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Backblaze B2** — Backblaze B2 is a low-cost S3-compatible object storage service.
- **Storage Transfer API** — Storage Transfer schedules bulk migrations of data into Cloud Storage from S3, on-premises, or another bucket.
- **Cloud Pub/Sub API** — Pub/Sub topics receive object change notifications published by Cloud Storage buckets.
- **Dropbox API** — Dropbox is consumer- and team-oriented file storage rather than infrastructure object storage.

## FAQ

### What authentication does the Cloud Storage JSON API use?

The Cloud Storage JSON API uses OAuth 2.0 with scopes such as devstorage.read_only, devstorage.read_write, or cloud-platform. HMAC keys are also supported for S3-compatible interoperability. Through Jentic, OAuth credentials are stored in your Jentic One instance and exchanged for short-lived access tokens.

### Can I upload large files with the Storage JSON API?

Yes. Object uploads use the upload host (uploadType=resumable for files over a few MiB), which supports chunked, resumable transfers. The metadata-only POST /b/{bucket}/o initiates the resumable session and returns an upload URL the client streams content into.

### What are the rate limits for the Cloud Storage JSON API?

Cloud Storage scales to very high object operation rates per bucket but enforces a soft limit of around 1 write per second per object name and recommended ramp-up patterns for new buckets. Per-project read and write quotas exist and can be inspected in the Google Cloud Console under IAM and admin > Quotas.

### How do I copy an object between buckets through Jentic?

Search Jentic for 'copy a Cloud Storage object', load the objects.copy or objects.rewrite schema, and execute. POST /b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destBucket}/o/{destObject} performs the copy in a single call; objects.rewrite is used for cross-region copies and storage class transitions on large objects.

### Is the Cloud Storage JSON API free?

The API itself has no per-call charge. Cloud Storage costs come from storage volume per GB-month, network egress, and operation classes (Class A for writes, Class B for reads). A free tier of 5 GB Standard storage and limited operations is available.

### Can I receive notifications when an object changes?

Yes. POST /b/{bucket}/notificationConfigs registers a Pub/Sub topic that receives object lifecycle events such as OBJECT_FINALIZE and OBJECT_DELETE, which downstream pipelines can subscribe to.

### Can I limit what my agent is allowed to do with the Cloud Storage JSON API?

Yes. Because you run Jentic One yourself, your own rules decide which Cloud Storage operations and credentials the agent may use. Since the bucket sits in the URL path (/b/{bucket} and /b/{bucket}/acl), you can pin the agent to a single bucket so it only reads that bucket, its ACLs, and its folders. You also choose the exact operations it may call, so actions like creating buckets or pausing Anywhere Caches stay off limits unless you grant them.
