Stay organized with collections
Save and categorize content based on your preferences.
When your application requests private data, the request must be authorized by an authenticated
user who has access to that data.
Every request your application sends to the Android Over The Air API must include an authorization token. The token also identifies your application to Google.
About authorization protocols
Your application must use OAuth 2.0 to authorize requests. No other authorization protocols are supported. If your application uses Sign In With Google, some aspects of authorization are handled for you.
Authorizing requests with OAuth 2.0
All requests to the Android Over The Air API must be authorized by an authenticated user.
The details of the authorization process, or "flow," for OAuth 2.0 vary somewhat depending on what kind of application you're writing. The following general process applies to all application types:
When you create your application, you register it using the Google API Console. Google then provides information you'll need later, such as a client ID and a
client secret.
Activate the Android Over The Air API in the Google API Console. (If the API isn't listed in the API Console, then skip this step.)
When your application needs access to user data, it asks Google for a particular scope of access.
Google displays a consent screen to the user, asking them to authorize your application to request some of their data.
If the user approves, then Google gives your application a short-lived access token.
Your application requests user data, attaching the access token to the request.
If Google determines that your request and the token are valid, it returns the requested data.
Some flows include additional steps, such as using refresh tokens to acquire new access tokens. For detailed information about flows for various types of applications, see Google's OAuth 2.0 documentation.
Here's the OAuth 2.0 scope information for the Android Over The Air API:
To request access using OAuth 2.0, your application needs the scope information, as well as
information that Google supplies when you register your application (such as the client ID and the
client secret).
Tip: The Google APIs client libraries can handle some of the authorization process for you. They are available for a variety of programming languages; check the page with libraries and samples for more details.
Using a service
account
The Android Over The Air API requires an actual user in order to determine what data can be shown. To allow
this to be done when acting programmatically, you can use a service account. To create a service
account, do the following:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eApplications must use OAuth 2.0 for authorization when requesting private user data through the Android Over The Air API.\u003c/p\u003e\n"],["\u003cp\u003eBefore making requests, applications need to be registered with Google API Console to obtain necessary credentials and activate the API.\u003c/p\u003e\n"],["\u003cp\u003eAccess to user data is granted via short-lived access tokens obtained after user consent, with OAuth 2.0 scopes defining the extent of access.\u003c/p\u003e\n"],["\u003cp\u003eFor programmatic access without direct user interaction, service accounts can be utilized, but require configuration and addition to relevant deployments.\u003c/p\u003e\n"]]],["Applications accessing private data via the Android Over The Air API must use OAuth 2.0 authorization. This involves registering the application in the Google API Console to obtain a client ID and secret. The app requests a specific scope of data access. Users then grant consent, and Google issues a short-lived access token. The app uses this token in requests to access user data. Service accounts can be used programmatically and need to be added to each deployment.\n"],null,["# Authorize Requests\n\nWhen your application requests private data, the request must be authorized by an authenticated\nuser who has access to that data.\n\nEvery request your application sends to the Android Over The Air API must include an authorization token. The token also identifies your application to Google.\n\nAbout authorization protocols\n-----------------------------\n\nYour application must use [OAuth 2.0](https://developers.google.com/identity/protocols/OAuth2) to authorize requests. No other authorization protocols are supported. If your application uses [Sign In With Google](https://developers.google.com/identity/gsi/web), some aspects of authorization are handled for you.\n\nAuthorizing requests with OAuth 2.0\n-----------------------------------\n\nAll requests to the Android Over The Air API must be authorized by an authenticated user.\n\nThe details of the authorization process, or \"flow,\" for OAuth 2.0 vary somewhat depending on what kind of application you're writing. The following general process applies to all application types:\n\n1. When you create your application, you register it using the [Google API Console](https://console.cloud.google.com/). Google then provides information you'll need later, such as a client ID and a client secret.\n2. Activate the Android Over The Air API in the Google API Console. (If the API isn't listed in the API Console, then skip this step.)\n3. When your application needs access to user data, it asks Google for a particular **scope** of access.\n4. Google displays a **consent screen** to the user, asking them to authorize your application to request some of their data.\n5. If the user approves, then Google gives your application a short-lived **access token**.\n6. Your application requests user data, attaching the access token to the request.\n7. If Google determines that your request and the token are valid, it returns the requested data.\n\nSome flows include additional steps, such as using **refresh tokens** to acquire new access tokens. For detailed information about flows for various types of applications, see Google's [OAuth 2.0 documentation](https://developers.google.com/identity/protocols/OAuth2).\n\nHere's the OAuth 2.0 scope information for the Android Over The Air API:\n\n| Scope | Meaning |\n|-------------------------------------------------------------------------|--------------------|\n| `https://www.googleapis.com/auth/android_partner_over_the_air` | Read/write access. |\n| `https://www.googleapis.com/auth/android_partner_over_the_air.readonly` | Read-only access. |\n\nTo request access using OAuth 2.0, your application needs the scope information, as well as\ninformation that Google supplies when you register your application (such as the client ID and the\nclient secret).\n\n**Tip:** The Google APIs client libraries can handle some of the authorization process for you. They are available for a variety of programming languages; check the [page with libraries and samples](/android/over-the-air/v1/libraries) for more details.\n\nUsing a service\naccount\n-----------------------\n\nThe Android Over The Air API requires an actual user in order to determine what data can be shown. To allow\nthis to be done when acting programmatically, you can use a service account. To create a service\naccount, do the following:\n\n1. Go to the [Credentials page](https://console.cloud.google.com/apis/credentials).\n2. Click **Create credentials** and choose **Service account key**.\n3. Choose **New service account** and enter an email address (gota-api is suggested). Choose **Service Account Actor** as the role.\n4. Click **Create**.\n\nUse the JSON file along with the instructions on using service accounts for your desired [programming language](https://developers.google.com/api-client-library) to authorize your\napplication.\n| **Note:** The service account must be added to **each\n| deployment** in partner.android.com (APFE) that you want to manage via the API. Failure to do this will result in the deployment missing from the listing results and `403\n| Forbidden` errors when trying to act on that deployment directly."]]