For Agents
Schedule and run bulk data transfers into Google Cloud Storage from S3, HTTP, on-prem, or another GCS bucket. Pause, resume, or cancel running transfer operations.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Storage Transfer API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Storage Transfer API.
Create scheduled or one-shot transfer jobs from S3, HTTP, on-premises, or another Cloud Storage bucket
Run a transfer job immediately and track the resulting transfer operation
Pause, resume, or cancel a long-running transfer operation
GET STARTED
Use for: I want to migrate an S3 bucket into Cloud Storage, Create a scheduled daily transfer from S3 to GCS, Run a transfer job immediately, Pause a running storage transfer operation
Not supported: Does not run per-object reads or writes, transform records in-flight, or move data out of Cloud Storage to external sinks — use for scheduled bulk ingestion into Cloud Storage only.
The Storage Transfer API moves data into Google Cloud Storage on a schedule or on demand. It supports transfers from Amazon S3, HTTP/HTTPS sources, on-premises POSIX file systems via agent pools, and another Cloud Storage bucket. A transfer job describes source, destination, schedule, and filtering rules; transfer operations are individual runs of those jobs that can be paused, resumed, or cancelled. The API also exposes Google service accounts used to grant the transfer service access to source data.
Manage agent pools used for on-premises POSIX-source transfers
List Google service accounts that the transfer service uses to access source storage
Filter source data by prefix or last-modified time before transferring
Patterns agents use Storage Transfer API for, with concrete tasks.
★ S3 to GCS Migration
Migrate a multi-terabyte S3 bucket into Cloud Storage as part of a cloud move. The Storage Transfer API accepts an awsS3DataSource with the bucket name and access credentials and a gcsDataSink with the destination bucket. The service handles parallelism, retries, and integrity checks; progress is reported through the transfer operation.
POST /v1/transferJobs with awsS3DataSource.bucketName='legacy-data', gcsDataSink.bucketName='migrated-data', schedule.scheduleStartDate=today.
Daily Vendor Drop Ingestion
Ingest a daily file drop from a partner's HTTPS endpoint into a Cloud Storage landing bucket. The transfer job runs on a schedule, fetches the file list, and copies new objects into the sink. Filtering rules skip already-transferred objects so each run handles only the deltas.
POST /v1/transferJobs with httpDataSource.listUrl=https://partner.example/manifest.tsv, gcsDataSink.bucketName='vendor-drops', schedule.scheduleStartDate=tomorrow.
On-Premises NAS Backup
Back up files from an on-premises NAS into a Cloud Storage archive bucket using a transfer agent pool. The Storage Transfer API exposes agent pool management for hosting the on-prem agents, and a posixDataSource on the transfer job that points the agent at a local path.
POST /v1/projects/myproj/agentPools to register the pool, then POST /v1/transferJobs with posixDataSource.rootDirectory='/mnt/nas/share' and the pool name.
AI Agent Data Sync
An AI agent setting up a new analytics environment needs to copy a snapshot of an existing GCS bucket into the new project's bucket. Through Jentic, the agent searches for the create-transfer-job operation, loads the schema, and submits the job — Jentic handles auth so the agent never sees the underlying access token.
Search Jentic for 'transfer data into Cloud Storage', execute POST /v1/transferJobs with gcsDataSource.bucketName='source' and gcsDataSink.bucketName='dest'.
15 endpoints — the storage transfer api moves data into google cloud storage on a schedule or on demand.
METHOD
PATH
DESCRIPTION
/v1/transferJobs
Create a transfer job
/v1/transferJobs
List transfer jobs in a project
/v1/{+jobName}:run
Run a transfer job immediately
/v1/{+name}:pause
Pause a running transfer operation
/v1/{+name}:resume
Resume a paused transfer operation
/v1/{+name}:cancel
Cancel a running transfer operation
/v1/googleServiceAccounts/{projectId}
Get the Google service account used by Storage Transfer for a project
/v1/projects/{+projectId}/agentPools
List on-premises agent pools in a project
/v1/transferJobs
Create a transfer job
/v1/transferJobs
List transfer jobs in a project
/v1/{+jobName}:run
Run a transfer job immediately
/v1/{+name}:pause
Pause a running transfer operation
/v1/{+name}:resume
Resume a paused transfer operation
Three things that make agents converge on Jentic-routed access.
Credential isolation
Storage Transfer OAuth credentials are stored in the Jentic vault (MAXsystem) and exchanged for scoped, short-lived access tokens. The project-specific Google service account used to read source data is identified via the googleServiceAccounts endpoint and granted source-side permissions out of band.
Intent-based discovery
Agents search Jentic with intents like 'transfer data into Cloud Storage' or 'migrate from S3 to GCS', and Jentic returns the matching transferJobs.create operation along with its request schema.
Time to first call
Direct Storage Transfer integration: 1-2 days to wire OAuth, source credential plumbing, and operation polling. Through Jentic: under 1 hour to discover, schema-load, and submit a job.
Alternatives and complements available in the Jentic catalogue.
Specific to using Storage Transfer API through Jentic.
What authentication does the Storage Transfer API use?
The Storage Transfer API uses OAuth 2.0 with the cloud-platform scope. Source access is delegated to a project-specific Google service account that must be granted read access on the S3, HTTP, or source GCS bucket. Through Jentic, OAuth credentials are stored in the Jentic vault (MAXsystem) and exchanged for short-lived access tokens.
Can I migrate from Amazon S3 with the Storage Transfer API?
Yes. Set awsS3DataSource on the transferSpec with the source bucket name and either an AWS access key pair or, preferably, role federation. The transfer service handles parallel object copy, retries, and integrity checks against the destination Cloud Storage bucket.
What are the rate limits for the Storage Transfer API?
Storage Transfer scales transfer throughput based on the source and sink rather than per-call quotas, but admin calls (job creation, listing) are subject to the standard project per-minute quotas — typically a few hundred requests per minute. Source-side limits (e.g. S3 LIST quotas) often dominate large migrations.
How do I run a transfer job through Jentic?
Search Jentic for 'transfer data into Cloud Storage', load the transferJobs.create schema, and execute POST /v1/transferJobs. To run an existing job immediately, call POST /v1/{+jobName}:run, which Jentic surfaces as a separate operation.
Is the Storage Transfer API free?
The Storage Transfer Service is free for transfers from another Cloud Storage bucket and for on-premises agent transfers. Transfers from Amazon S3 or HTTP sources are billed per GB. Standard Cloud Storage operation, storage, and egress charges still apply on the destination side.
Can I pause and resume a running transfer?
Yes. POST /v1/{+name}:pause halts a running transferOperation and POST /v1/{+name}:resume continues it. POST /v1/{+name}:cancel terminates the operation entirely without resuming.
/v1/{+name}:cancel
Cancel a running transfer operation
/v1/googleServiceAccounts/{projectId}
Get the Google service account used by Storage Transfer for a project
/v1/projects/{+projectId}/agentPools
List on-premises agent pools in a project