The rejection: Justification for the requested scope is insufficient

Justify Google Sheets / Docs scope (or use drive.file instead)

For many report-writer and document apps, the fastest path past verification is realizing you don't need the sensitive Sheets/Docs scope at all — drive.file may cover you.

01 — Why this happens

The spreadsheets and documents scopes are sensitive: they expose the content of the user's files. But if your app only touches files the user explicitly opens or creates through it, the drive.file scope is non-sensitive and covers that — dramatically simplifying verification. Requesting the broad content scope when drive.file would do is over-asking. When you genuinely need full content access, justify it against a specific feature.

02 — What Google says

Each fix below traces to a requirement Google publishes.

Nothing here is our opinion. Every requirement links to Google’s own page — open it and verify the fix yourself before you resubmit.

Every requested scope is classified non-sensitive, sensitive, or restricted — the category is shown per scope in the Cloud Console, and it decides your verification path.

Google requirement · R32Read it on Google’s docs

Where a narrower scope exists, either switch to it or explain why it won't do — over-asking without a justification is itself a rejection ground.

Google requirement · R25Read it on Google’s docs

Give one justification per sensitive scope, each tied to a specific feature a user can see.

Google requirement · R24Read it on Google’s docs

Your privacy policy must disclose how the app accesses, uses, stores, and shares Google user data specifically — named per scope.

Google requirement · R13Read it on Google’s docs
03 — The fix

Do these in order.

  1. 01

    Check whether drive.file is enough

    If the user picks or creates the specific files your app reads or writes, drive.file (access limited to those files) is non-sensitive and usually sufficient — a much shorter road than the sensitive Sheets/Docs scopes.

  2. 02

    If you need content access, pick read vs read/write

    Use spreadsheets.readonly / documents.readonly if you only read; reserve the read/write scope for apps that actually edit the file content.

  3. 03

    Justify against a visible feature

    Name the feature: 'read the selected sheet to generate a summary report'. One scope, one feature, tied to something the user sees.

  4. 04

    Keep Limited Use in mind for AI apps

    If you feed document content to an AI model, disclose it per scope and don't use that Google data to train generalized models.

04 — The scopes in play

What each scope actually grants.

The tier decides your path: non-sensitive needs only brand verification, sensitive needs a justification and demo video, and restricted needs a separate security assessment. Google’s scope categories →

ScopeTierWhat it accesses
drive.file
Non-sensitive
Only files the user opens/creates in the app
spreadsheets.readonly
Sensitive
Specific Sheets content (read)
spreadsheets
Sensitive
Specific Sheets content
documents.readonly
Sensitive
Specific Docs content (read)
documents
Sensitive
Specific Docs content

Narrower alternatives exist (Google prefers the least access that works): spreadsheetsspreadsheets.readonly; documentsdocuments.readonly.

Check it before you resubmit

See exactly what Google’s crawler sees — free.

Paste your URL and scopes. The pre-check fetches your homepage the way Google does, finds your privacy-policy link, and flags the blockers this rejection is about — in seconds, no signup.

Questions

Straight answers.

Do I need the Sheets scope, or is drive.file enough?

If your app only touches files the user opens or creates in it, drive.file is non-sensitive and usually enough. Request the sensitive Sheets/Docs scope only when you need broader content access.

What makes drive.file easier than the Sheets scope?

drive.file is non-sensitive because it's limited to files the user explicitly hands your app, so it avoids the sensitive-scope justification and demo-video burden.