Oneprofile Google Drive API
Endpoints for the signed-in user's Google Drive connection: starting and finishing the OAuth grant, checking or dropping it, and minting the short-lived token the Google Picker needs.
Endpoints for the signed-in user's Google Drive connection: starting and finishing the OAuth grant, checking or dropping it, and minting the short-lived token the Google Picker needs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/getoneprofile-ai:getoneprofile-ai-google-drive-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
email: support@getoneprofile.ai
name: Oneprofile Support
description: REST API reference for Oneprofile, the GTM data layer for your CRM. Manage tables, enrichments, and integrations. Authenticate with an API key to get started.
termsOfService: https://www.getoneprofile.ai/terms
title: Reference | Oneprofile Google Drive API
version: 1.0.42765316646
tags:
- description: 'Endpoints for the signed-in user''s Google Drive connection: starting and finishing the OAuth grant, checking or dropping it, and minting the short-lived token the Google Picker needs.'
name: google-drive
paths:
/google-drive/connection/:
delete:
description: Drop the signed-in user's grant. Documents already linked keep their summaries; adding more and refreshing stop working until reconnected.
operationId: disconnect_google_drive
parameters:
- description: Report what would be disconnected, and disconnect nothing.
in: query
name: dry_run
required: false
schema:
default: false
description: Report what would be disconnected, and disconnect nothing.
title: Dry Run
type: boolean
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessfullyDeletedResponse'
description: Successful Response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Invalid request made to the API.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Internal server error.
'502':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Bad gateway error.
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Service unavailable.
security:
- APIKeyHeader: []
- HTTPBearer: []
summary: Disconnect Google Drive
tags:
- google-drive
get:
description: 'Whether the signed-in user has connected Google Drive in this workspace. The grant is per user: drive.file reaches only the files that person picked.'
operationId: get_google_drive_connection
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleDriveConnectionReadSchema'
description: Successful Response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Invalid request made to the API.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Internal server error.
'502':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Bad gateway error.
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Service unavailable.
security:
- APIKeyHeader: []
- HTTPBearer: []
summary: Get the Google Drive connection
tags:
- google-drive
/google-drive/connection/authorize/:
post:
description: Returns the Google authorize URL; the org and user ride in the OAuth state.
operationId: start_google_drive_connect
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleDriveConnectStartResponseSchema'
description: Successful Response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: No Drive client is set up.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Internal server error.
'502':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Bad gateway error.
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Service unavailable.
security:
- APIKeyHeader: []
- HTTPBearer: []
summary: Begin connecting Google Drive
tags:
- google-drive
/google-drive/connection/callback/:
post:
description: Exchanges the OAuth code and stores the grant for the signed-in user.
operationId: google_drive_connect_callback
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleDriveConnectCallbackSchema'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GoogleDriveConnectionReadSchema'
description: Successful Response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: The OAuth state is invalid or expired.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Internal server error.
'502':
description: Google rejected the token exchange.
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Service unavailable.
security:
- APIKeyHeader: []
- HTTPBearer: []
summary: Finish connecting Google Drive
tags:
- google-drive
/google-drive/connection/picker-token/:
get:
description: A short-lived access token, scoped to drive.file, for the browser to render the Google Picker with, plus the app id and developer key the Picker needs. Mint one per open; never cache it.
operationId: mint_google_drive_picker_token
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DrivePickerTokenReadSchema'
description: Successful Response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityResponse'
description: Drive is not connected.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Internal server error.
'502':
description: Google rejected the token refresh; the grant is gone.
'503':
content:
application/json:
schema:
$ref: '#/components/schemas/ServerErrorResponse'
description: Service unavailable.
security:
- APIKeyHeader: []
- HTTPBearer: []
summary: Mint a Google Picker token
tags:
- google-drive
components:
schemas:
ForbiddenResponse:
properties:
detail:
description: The detail of why the request is forbidden.
title: Detail
type: string
required:
- detail
title: ForbiddenResponse
type: object
UnprocessableEntityIssue:
properties:
input:
anyOf:
- type: string
- type: integer
- type: number
- type: boolean
- items: {}
type: array
- additionalProperties: true
type: object
description: The user's input that caused the error.
title: Input
loc:
description: The location of the error. Always contains 1 or 2 elements. The first element is the type of location (e.g. 'body', 'query', 'path', 'header'). The second element is the name of the field that caused the error. If the error is not related to a specific field, the second element is not present.
items:
type: string
title: Loc
type: array
msg:
description: The message of the error. The error message to show to the user.
title: Msg
type: string
type:
description: The type of the error. Useful for frontend code to handle different types of errors.
title: Type
type: string
required:
- loc
- msg
- type
- input
title: UnprocessableEntityIssue
type: object
DrivePickerTokenReadSchema:
description: What the browser needs to open the Google Picker.
properties:
access_token:
description: A short-lived token scoped to drive.file. Never store it.
title: Access Token
type: string
app_id:
description: The GCP project number, for PickerBuilder.setAppId.
title: App Id
type: string
developer_key:
description: The public browser API key, for PickerBuilder.setDeveloperKey.
title: Developer Key
type: string
expires_at:
anyOf:
- format: date-time
type: string
- type: 'null'
title: Expires At
required:
- access_token
- expires_at
- app_id
- developer_key
title: DrivePickerTokenReadSchema
type: object
GoogleDriveConnectionReadSchema:
description: 'Whether the signed-in user has connected Drive in this workspace.
Always a 200, never a 404: the settings page is asking "Connect, or pick?"
and both answers are ordinary.'
properties:
configured:
description: Whether this deployment has a Google Drive client at all. False means the Connect button should not be offered.
title: Configured
type: boolean
connected:
title: Connected
type: boolean
connected_at:
anyOf:
- format: date-time
type: string
- type: 'null'
title: Connected At
google_account_email:
anyOf:
- type: string
- type: 'null'
description: Which Google account is connected, for the caption.
title: Google Account Email
required:
- configured
- connected
- google_account_email
- connected_at
title: GoogleDriveConnectionReadSchema
type: object
ServerErrorResponse:
properties:
detail:
description: The detail of why the server returned an error.
title: Detail
type: string
required:
- detail
title: ServerErrorResponse
type: object
GoogleDriveConnectCallbackSchema:
description: What Google sent to the callback page.
properties:
code:
maxLength: 2048
minLength: 1
title: Code
type: string
state:
maxLength: 512
minLength: 1
title: State
type: string
required:
- code
- state
title: GoogleDriveConnectCallbackSchema
type: object
GoogleDriveConnectStartResponseSchema:
description: Where to send the browser to grant access.
properties:
authorize_url:
title: Authorize Url
type: string
required:
- authorize_url
title: GoogleDriveConnectStartResponseSchema
type: object
UnprocessableEntityResponse:
properties:
detail:
description: The detail of the error. This is the error message to show to the user. You should also use the issues field to show more detailed error messages per field. Use this field for a single liner error message.
title: Detail
type: string
issues:
description: The issues that caused the error. There can be multiple issues. Each issue is a user-facing error message.
items:
$ref: '#/components/schemas/UnprocessableEntityIssue'
title: Issues
type: array
required:
- detail
- issues
title: UnprocessableEntityResponse
type: object
UnauthorizedResponse:
properties:
detail:
description: The detail of why the request is unauthorized.
title: Detail
type: string
required:
- detail
title: UnauthorizedResponse
type: object
SuccessfullyDeletedResponse:
properties:
count:
default: 1
description: The number of resources that were deleted.
title: Count
type: integer
detail:
description: The detail of why the resource was deleted.
title: Detail
type: string
required:
- detail
title: SuccessfullyDeletedResponse
type: object
securitySchemes:
APIKeyHeader:
in: header
name: X-API-Key
type: apiKey
HTTPBearer:
scheme: bearer
type: http