Introducción: Desarrolla apps con la API de portabilidad de datos
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
La API de Portabilidad de datos te permite compilar aplicaciones que soliciten la autorización de un usuario para transferir una copia de los datos de los servicios de Google a tu aplicación. Esto permite la portabilidad de datos y facilita el cambio de servicios.
También debes verificar que la API de Data Portability esté disponible para los usuarios de tu ubicación. Para obtener una lista de los países y regiones admitidos, consulta Preguntas frecuentes en la página “Comparte una copia de tus datos con un tercero”.
Flujo de trabajo del desarrollador
Estos son los pasos que debes seguir para crear una aplicación que use la API de Data Portability.
Implementa el flujo de consentimiento de OAuth para el usuario. En este ejemplo, el usuario proporciona acceso a los datos de los videos de YouTube.
El usuario hace clic en Importar videos de YouTube y accede a su Cuenta de Google.
La app reenvía al usuario a una URL de consentimiento de OAuth. Ten en cuenta que esta URL de ejemplo está simplificada y le faltan algunos parámetros:
El usuario hace clic en Siguiente en la pantalla de consentimiento de OAuth, acepta compartir sus datos y proporciona acceso a la cuenta.
El usuario selecciona qué datos compartir y la cantidad de tiempo que la app puede acceder a esos datos (acceso único a sus datos o acceso basado en el tiempo durante 30 o 180 días) y, luego, hace clic en Continuar.
Nota: El usuario tiene la opción de renovar tu acceso a sus datos hasta 90 días antes de que venza el token de OAuth.
El botón de renovación no aparece si el usuario no tiene permisos que vencerán en un plazo de 90 días.
Nota: Si el usuario quiere cambiar entre el acceso único y el acceso basado en el tiempo, deberá volver a realizar el flujo de consentimiento después de que se revoque la concesión existente. Puedes revocar el otorgamiento con resetAuthorization(), o bien el usuario puede hacerlo en su página de conexiones.
El usuario se redirecciona a la app.
El desarrollador obtiene un token de OAuth para el usuario.
Tu app llama a InitiatePortabilityArchive(resources = ["myactivity.youtube"]) con un token de OAuth adjunto que contiene este permiso de OAuth:
Esta llamada inicia el proceso de creación del archivo de datos y responde con un ID de trabajo y si el usuario otorgó acceso único o basado en el tiempo.
Nota:
El acceso único significa una exportación por alcance. Si el usuario otorga varios permisos, puedes crear trabajos independientes para cada uno de los recursos autorizados por el token.
Tu app llama a GetPortabilityArchiveState(job_id) con un token de OAuth adjunto que contiene este permiso de OAuth:
Puedes llamar a este método varias veces para recuperar el estado de la tarea de archivo. El método muestra el estado de la tarea. Si el estado es COMPLETE,
el archivo está listo y se proporcionan URLs firmadas de Cloud Storage. Ten en cuenta que el tiempo que tarda en completarse la solicitud de archivo puede variar de minutos a horas, según el tamaño de los datos.
Descarga el archivo de datos con las URLs firmadas.
Si el usuario otorga acceso único, llamas a ResetAuthorization() con
un token de OAuth adjunto para restablecer los recursos agotados y quitar todos los consentimientos de OAuth.
Si el usuario otorga acceso basado en el tiempo, puedes exportar recursos cada 24 horas hasta que venza el consentimiento.
Cómo interactúan los usuarios con una app de la API de Data Portability
En este diagrama, se muestra cómo los usuarios interactúan con una app que está integrada en la API de Data Portability.
Primero, se le presenta al usuario una opción para recuperar sus datos.
A continuación, el usuario accede a su Cuenta de Google.
Luego, el usuario hace clic en Siguiente cuando se le solicita que comparta sus datos y en Entendido cuando se le solicita que acepte la política de privacidad.
Luego, se le muestra al usuario una pantalla de consentimiento de OAuth que se usa para permitir que la aplicación acceda a sus datos. Las opciones aquí coinciden con los permisos de OAuth
que configuraste. El usuario selecciona qué datos compartir y durante cuánto tiempo la app puede acceder a ellos (acceso único a sus datos o acceso basado en el tiempo durante 30 o 180 días) y, luego, hace clic en Continuar.
Después de permitir el acceso, comenzará la importación de datos. Según el tamaño de los datos, la solicitud puede tardar varios minutos o varias horas en completarse.
[null,null,["Última actualización: 2025-07-25 (UTC)"],[[["\u003cp\u003eThe Data Portability API allows developers to build applications that enable users to move a copy of their data from Google services to another application, facilitating service switching.\u003c/p\u003e\n"],["\u003cp\u003eBefore releasing an application using this API, developers must obtain approval from Google and ensure the API is available in the user's region.\u003c/p\u003e\n"],["\u003cp\u003eThe developer workflow involves implementing the OAuth consent flow, initiating the data archive creation, monitoring its status, downloading the archive using provided URLs, and finally resetting authorization.\u003c/p\u003e\n"],["\u003cp\u003eUsers interact with Data Portability API applications by initiating data retrieval, signing into their Google Account, granting necessary permissions, and waiting for the data import process to complete.\u003c/p\u003e\n"],["\u003cp\u003eData Portability API features are not accessible to users under 18 years of age, resulting in an error message if they attempt to use them.\u003c/p\u003e\n"]]],[],null,["# Introduction: Develop apps using the Data Portability API\n\nThe Data Portability API lets you build applications that request authorization from a\nuser to move a copy of data from Google services into your application. This\nenables data portability and facilitates switching services.\n\nIf you are looking for information on how users share data, see [Share a copy of\nyour data with a third party](https://support.google.com/accounts/answer/14452558).\n\nPrerequisites\n-------------\n\nBefore releasing your app, it must be [approved](/data-portability/user-guide/client-verification) by Google.\n\nYou should also verify that the Data Portability API is available to users in\nyour location. For a list of supported countries and regions, see\n[Common Questions](https://support.google.com/accounts/answer/14452558) on the \"Share a copy of your data with a third\nparty\" page.\n\nDeveloper workflow\n------------------\n\nThese are the steps you follow to create an application that uses the\nData Portability API.\n\n1. Implement the OAuth consent flow for the user. In this example, the user is\n providing access to YouTube video data.\n\n 1. The user clicks **Import YouTube Videos** and signs into their Google\n Account.\n\n 2. The app forwards the user to an OAuth consent URL. Note that this\n example URL is simplified and is missing some parameters:\n\n `https://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/dataportability.myactivity.youtube`\n 3. The user clicks **Next** on the OAuth consent screen, agrees to share\n their data, and provides account access.\n\n 4. The user selects what data to share and the amount of time the app can\n access that data (*one-time access* to their data or *time-based access* for\n 30 or 180 days), then clicks **Continue**.\n\n **Note**:\n Up to 90 days before your OAuth token expires, the user has the option\n of renewing your access to their data before your OAuth token expires.\n The renew button doesn't appear if the user doesn't have scopes expiring\n within 90 days.\n\n **Note** : If the user wants to switch between *one-time access* and\n *time-based access* they will need to go through the consent flow again\n after the existing grant has been revoked. You can revoke the grant with\n `resetAuthorization()`, or the user can revoke on their [connections\n page](http://myaccount.google.com/connections).\n 5. The user is redirected to the app.\n\n 6. The developer obtains an OAuth token for the user.\n\n2. Your app calls\n `InitiatePortabilityArchive(resources = [\"myactivity.youtube\"])` with\n an attached OAuth token that contains this OAuth scope:\n\n `https://www.googleapis.com/auth/dataportability.myactivity.youtube`\n\n This call starts the process of creating the data archive and responds with\n a job ID and whether the user granted one-time or time-based access.\n\n **Note** :\n One-time access means one export *per scope*. If the user grants\n multiple scopes, you may choose to create separate jobs for each of the\n resources authorized by the token.\n | **Tip:** You should initiate the portability archive within 24 hours of user authorization.\n3. Your app calls `GetPortabilityArchiveState(job_id)` with an attached OAuth\n token that contains this OAuth scope:\n\n `https://www.googleapis.com/auth/dataportability.myactivity.youtube`\n\n You can call this method multiple times to retrieve the status of the\n archive job. The method returns the job's state. If the state is `COMPLETE`,\n the archive is ready, and signed Cloud Storage URLs are provided. Note that\n the time it takes to complete the archive request can vary from minutes to\n hours depending on the size of the data.\n4. Download the data archive using the signed URLs.\n\n5. *If the user grants one-time access* , you call `ResetAuthorization()` with\n an attached OAuth token to reset exhausted resources and to remove all OAuth\n consents.\n\n6. *If the user grants time-based access*, you can export resources every 24\n hours until the consent expires.\n\nFor more information on using the Data Portability API methods, see\n[Call Data Portability API methods](/data-portability/user-guide/methods).\n\nHow users interact with a Data Portability API app\n--------------------------------------------------\n\nThis diagram shows how users interact with an app that's integrated with the\nData Portability API.\n\n1. First, the user is presented with an option to retrieve their data.\n\n2. Next, the user signs into their Google Account.\n\n3. Then, the user clicks **Next** when they're prompted to share their data,\n and they click **I understand** when they're prompted to accept the privacy\n policy.\n\n4. Then, the user is shown an OAuth consent screen that is used to allow the\n application to access their data. The options here match the OAuth scopes\n you configured. The user selects what data to share and the amount of time\n the app can access that data (*one-time access* to their data or\n *time-based access* for 30 or 180 days), then clicks **Continue**.\n\n5. After allowing access, the data import starts. Depending on the size of the\n data, the request can take several minutes to several hours to complete."]]