Drive API logo

Drive API

Drive API

Google Drive API exposes file storage, sharing, and search — the foundation for document collaboration integrations.

Visit site ↗Health checked 9h ago
Use it when

Generous per-user quota

Watch for

Large file uploads need the resumable upload protocol

First check

Enable Drive API and configure OAuth at console.cloud.google.com. After user consent, call files.list, files.create, etc. Common scopes: drive.file (only files your app created — safer) or drive (all files).

Auth
oauth
CORS
No
HTTPS
Yes
Signup
Required
Latency
44 ms
Protocol
REST
Pricing
free

Uptime · 30-day window

Probes: 1Uptime: 100%Avg latency: 44ms
01

About this API

The Google Drive API exposes Drive as a REST surface covering file CRUD, folder organization, permission sharing, search, and change notifications. It pairs with the Google Docs, Sheets, and Slides APIs so apps can create and edit native Google docs programmatically.

Uploads come in three flavors: simple (< 5 MB), multipart (metadata + data in one request), and resumable (large files, resumable on connection drops). For production, default to resumable so brief network hiccups do not waste a long upload. The permission model centers on the permissions resource — you can grant access to a single email, a Workspace domain, or "anyone with the link." Prefer the drive.file scope over the full drive scope where possible: it avoids the "access all your files" warning during consent and is much easier to get through Google verification.

02

What you can build

  • 1Add "Save to Google Drive" to your app
  • 2Use Drive as a headless file store served to your frontend
  • 3Bulk reorganize or migrate documents and permissions
  • 4Sync external files into editable Google Docs
  • 5React to changes (e.g. new file triggers analysis)
03

Strengths & limitations

Strengths

  • Generous per-user quota
  • Manages Drive, Docs, Sheets, Slides files in one API
  • File version history and restore support
  • Permissions API lets you manage sharing programmatically

Limitations

  • Large file uploads need the resumable upload protocol
  • Some operations have per-second rate limits — batch jobs need backoff
  • googleapis.com is inaccessible from mainland China without a proxy
04

Example request

Generic template — replace <endpoint> with the real path from the docs.
curl https://google.com/<endpoint> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
05

Getting started

Enable Drive API and configure OAuth at console.cloud.google.com. After user consent, call files.list, files.create, etc. Common scopes: drive.file (only files your app created — safer) or drive (all files).

06

FAQ

Is the API billed?+

Free; quotas in units, with 1 billion units per user per day — plenty of headroom for normal apps.

drive vs drive.file — which scope should I use?+

Use drive.file if you only touch files your app created — safer and easier to pass Google verification. Use drive only when you must read everything.

Large file uploads keep failing — why?+

Switch to resumable uploads. They chunk the file and resume on disconnect, which is far more tolerant of timeouts and network jitter.

Can I watch a single file for changes?+

Yes — files.watch sets up a webhook. For org-wide monitoring use changes.watch over the entire user Drive.

07

Technical details

CORS: NoHTTPS: YesSignup: YesOpen source: No
Auth type
oauth
Pricing
free
Protocols
REST
SDKs
python, javascript, java, go, ruby
Response time
44 ms
Last health check
5/12/2026, 7:37:31 AM
08

Endpoints

Parsed from the OpenAPI spec. Showing 12 of 48 non-deprecated endpoints.

GET
/aboutabout
GET
/changeschanges
pageToken:query*driveId:queryincludeCorpusRemovals:queryincludeItemsFromAllDrives:queryincludeLabels:query+9 more
GET
/changes/startPageTokenchanges
driveId:querysupportsAllDrives:querysupportsTeamDrives:queryteamDriveId:query
POST
/changes/watchchanges
pageToken:query*driveId:queryincludeCorpusRemovals:queryincludeItemsFromAllDrives:queryincludeLabels:query+9 more
POST
/channels/stopchannels
GET
/drivesdrives
pageSize:querypageToken:queryq:queryuseDomainAdminAccess:query
POST
/drivesdrives
requestId:query*
DELETE
/drives/{driveId}drives
driveId:path*allowItemDeletion:queryuseDomainAdminAccess:query
GET
/drives/{driveId}drives
driveId:path*useDomainAdminAccess:query
PATCH
/drives/{driveId}drives
driveId:path*useDomainAdminAccess:query
POST
/drives/{driveId}/hidedrives
driveId:path*
POST
/drives/{driveId}/unhidedrives
driveId:path*

36 more endpoints not shown. See the OpenAPI spec for the full list.

09

Tags

10

More from Google