Introdução: desenvolver apps usando a API Data Portability
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A API Data Portability permite criar aplicativos que solicitam autorização de um
usuário para mover uma cópia dos dados dos Serviços do Google para o aplicativo. Isso
permite a portabilidade de dados e facilita a troca de serviços.
Antes de lançar o app, ele precisa ser aprovado pelo Google.
Verifique também se a API Data Portability está disponível para os usuários no
seu local. Para conferir uma lista de países e regiões com suporte, consulte as
Perguntas frequentes na página "Compartilhar uma cópia dos seus dados com terceiros".
Fluxo de trabalho do desenvolvedor
Estas são as etapas que você segue para criar um aplicativo que usa a
API Data Portability.
Implemente o fluxo de consentimento do OAuth para o usuário. Neste exemplo, o usuário está
concedendo acesso aos dados de vídeo do YouTube.
O usuário clica em Importar vídeos do YouTube e faz login na Conta do
Google.
O app encaminha o usuário para um URL de consentimento do OAuth. Observe que este
exemplo de URL é simplificado e não tem alguns parâmetros:
O usuário clica em Próxima na tela de consentimento do OAuth, concorda em compartilhar
os dados e fornece acesso à conta.
O usuário seleciona quais dados compartilhar e o tempo que o app pode
acessar esses dados (acesso único aos dados ou acesso baseado em tempo por
30 ou 180 dias) e clica em Continuar.
Observação:
até 90 dias antes do token OAuth expirar, o usuário tem a opção
de renovar o acesso aos dados antes que o token OAuth expire.
O botão de renovação não aparece se o usuário não tiver escopos que expirem
em 90 dias.
Observação: se o usuário quiser alternar entre o acesso único e o
acesso por tempo, ele vai precisar passar pelo fluxo de consentimento novamente
depois que a concessão atual for revogada. É possível revogar o acesso com
resetAuthorization(), ou o usuário pode fazer isso na página de
conexões.
O usuário é redirecionado para o app.
O desenvolvedor recebe um token OAuth para o usuário.
O app chama
InitiatePortabilityArchive(resources = ["myactivity.youtube"]) com
um token OAuth anexado que contém este escopo do OAuth:
Essa chamada inicia o processo de criação do arquivo de dados e responde com
um ID de job e se o usuário concedeu acesso único ou baseado em tempo.
Observação:
o acesso único significa uma exportação por escopo. Se o usuário conceder
vários escopos, você poderá criar jobs separados para cada um dos
recursos autorizados pelo token.
O app chama GetPortabilityArchiveState(job_id) com um token OAuth
anexado que contém este escopo do OAuth:
Chame esse método várias vezes para recuperar o status do
job de arquivamento. O método retorna o estado do job. Se o estado for COMPLETE,
o arquivo estará pronto e os URLs assinados do Cloud Storage serão fornecidos. O tempo necessário para concluir a solicitação de arquivamento pode variar de minutos a horas, dependendo do tamanho dos dados.
Faça o download do arquivo de dados usando os URLs assinados.
Se o usuário conceder acesso único, chame ResetAuthorization() com
um token OAuth anexado para redefinir recursos esgotados e remover todos os consentimentos
do OAuth.
Se o usuário conceder acesso baseado em tempo, você poderá exportar recursos a cada 24
horas até que o consentimento expire.
Como os usuários interagem com um app da API Data Portability
Este diagrama mostra como os usuários interagem com um app integrado à
API Data Portability.
Primeiro, o usuário recebe uma opção para recuperar os dados.
Em seguida, o usuário faz login na Conta do Google.
Em seguida, o usuário clica em Próxima quando é solicitado que ele compartilhe os dados
e em Entendi quando é solicitado que ele aceite a política
de privacidade.
Em seguida, o usuário recebe uma tela de consentimento OAuth que é usada para permitir que o
aplicativo acesse os dados. As opções aqui correspondem aos escopos do OAuth
que você configurou. O usuário seleciona quais dados compartilhar e o período
de acesso do app a eles (acesso único ou
acesso baseado em tempo por 30 ou 180 dias) e clica em Continuar.
Depois de permitir o acesso, a importação de dados começa. Dependendo do tamanho dos dados, a solicitação pode levar de alguns minutos a várias horas para ser concluída.
[null,null,["Última atualização 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."]]