For Agents
Initiate user-authorized data exports from Google services into your application. Lets agents copy a user's Google data with their explicit consent and OAuth-scoped resources.
Use for: I need to initiate a Google Data Portability archive for the signed-in user, Check the access type of a portability authorization (one-time or time-based), Retry a portability archive that returned partial failures, Reset the user's data portability authorization
Not supported: Does not provide live read access to Google data, run analytics over user data, or push data into Google services — use for user-authorized one-time or time-based exports out of Google only.
The Google Data Portability API lets a third-party application request authorization from a Google user to copy their data out of Google services into the application. It exposes 6 endpoints that initiate a portability archive, check whether the granted authorization is one-time or time-based, retry partial archives, and reset the granted authorization. The API is the programmatic surface behind Google Takeout-style data exports for product integrations.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Data Portability 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 Data Portability API.
Initiate a portability archive job for a user-granted set of OAuth resources
Check whether the granted authorization is one-time or time-based
Retry a portability archive that completed with partial failures
Reset the user's granted authorization to revoke further exports
Cancel an in-flight portability archive operation
Retrieve the signed URLs of completed archive shards for download
Patterns agents use Data Portability API for, with concrete tasks.
★ User-Authorized Data Migration into Your App
Move a user's data from Google services (Maps, YouTube, Photos, and more) into a third-party application after they grant scoped consent. The API kicks off a portability archive, returns signed URLs for the resulting shards, and supports retry on partial failure. Setup of the OAuth consent screen and resource scopes typically takes a day; per-user transfers complete asynchronously.
Call POST /v1beta/portabilityArchive:initiate with the granted resources list, poll the long-running operation until done, and present the resulting download URLs to the user
Authorization Type Verification
Before initiating a transfer, check whether the user's grant is one-time or time-based so the application can decide whether to schedule a recurring sync or limit itself to a single export. POST /v1beta/accessType:check returns the access type tied to the OAuth credentials, letting the app surface the correct UX (single export vs scheduled sync).
Call POST /v1beta/accessType:check and branch the workflow based on whether the response is ONE_TIME or TIME_BASED
Authorization Reset for Compliance
When a user disconnects the integration or asks for their authorization to be revoked, call POST /v1beta/authorization:reset to remove the existing grant from Google's side. This complements the application's own token revocation and gives the user a clean state at the Google authorization level. Useful for GDPR and CCPA disconnect flows.
Call POST /v1beta/authorization:reset on the user's session and confirm to the user that the Google-side grant has been cleared
AI Agent Data-Move Operator
An AI agent that imports a user's Google data into a downstream system can drive the entire portability flow through Jentic without writing OAuth and long-running-operation code. Jentic search returns the matching initiate, retry, cancel, or reset operation, the agent loads the schema, and Jentic executes against dataportability.googleapis.com using vault-stored credentials.
Use Jentic to search 'initiate a google data portability archive', load the initiate schema, and execute it with the user's granted resource list
6 endpoints — the google data portability api lets a third-party application request authorization from a google user to copy their data out of google services into the application.
METHOD
PATH
DESCRIPTION
/v1beta/portabilityArchive:initiate
Initiate a portability archive
/v1beta/{+name}:retry
Retry a partially failed archive
/v1beta/{+name}:cancel
Cancel an in-flight archive
/v1beta/accessType:check
Check authorization access type
/v1beta/authorization:reset
Reset the user's portability authorization
/v1beta/{+name}
Get archive job status and download URLs
/v1beta/portabilityArchive:initiate
Initiate a portability archive
/v1beta/{+name}:retry
Retry a partially failed archive
/v1beta/{+name}:cancel
Cancel an in-flight archive
/v1beta/accessType:check
Check authorization access type
/v1beta/authorization:reset
Reset the user's portability authorization
/v1beta/{+name}
Get archive job status and download URLs
Three things that make agents converge on Jentic-routed access.
Credential isolation
Google OAuth client secrets and per-user refresh tokens are stored encrypted in the Jentic vault. Agents receive short-lived scoped access tokens for the resources the user has granted; raw credentials never enter the agent context.
Intent-based discovery
Agents search Jentic by intent (e.g. 'initiate a google data portability archive') and Jentic returns the matching operation with its input schema, so the agent calls the right endpoint without browsing the discovery doc.
Time to first call
Direct Data Portability integration: 1-2 days for OAuth scope wiring, consent flow, and operation polling. Through Jentic: under 1 hour.
Alternatives and complements available in the Jentic catalogue.
Specific to using Data Portability API through Jentic.
What authentication does the Data Portability API use?
The Data Portability API uses OAuth 2.0 with per-resource Data Portability scopes (one scope per Google service the user agrees to share). Through Jentic the OAuth client and refresh tokens are stored in the Jentic vault and the agent receives short-lived scoped tokens, so raw Google credentials never enter the agent context.
Can I copy a user's YouTube or Maps data with this API?
Yes — the user must grant the corresponding Data Portability scope (for example YouTube, Maps, or Photos resources), then the application calls POST /v1beta/portabilityArchive:initiate with that resource list. The returned operation produces signed-URL archive shards once the export finishes.
What are the rate limits for the Data Portability API?
Google enforces standard Cloud quotas on dataportability.googleapis.com plus per-user limits on how often a portability archive may be initiated for the same scope. Quotas are visible in the Cloud Console under IAM and admin, quotas, filtered to dataportability.googleapis.com.
How do I retry a partial archive through Jentic?
Search Jentic for 'retry a portability archive', load the schema for POST /v1beta/{+name}:retry, and execute with the archive job's resource name. The new run replays only the failed resources from the original archive.
Is the Data Portability API free?
API calls are free; users grant access with no charge to the application or to the user. The application is responsible for storing the resulting archive shards, which it would download from the signed URLs returned by the operation.
How do I revoke a user's portability grant?
Call POST /v1beta/authorization:reset with the user's authenticated session. This clears the Google-side authorization, after which any future initiate call requires a fresh consent screen. Pair with the application's own token revocation for a complete disconnect.
GET STARTED