---
title: "Create a Google Drive data source"
method: POST
path: "/google-drives"
tags: ["google-drives"]
---

# Create a Google Drive data source

`POST /google-drives`

Creates a new Google Drive data source and starts ingestion.

Required roles: All

## Request body

- CreateGoogleDriveRequest
  - `name` string, required — Name of the Google Drive data source
  - `folder_url` string, required — Google Drive folder URL
  - `service_account_key` string — One-time service account key JSON (mutually exclusive with secret_id)
  - `secret_id` string — ID of a stored secret to use (mutually exclusive with service_account_key)
  - `rrule` string — Recurrence rule (RFC 5545 RRULE). Requires secret_id (not one-time key).
  - `metadata` Metadata
    - `records` MetadataRecord[] — List of metadata records. A patch may contain up to 40 items; the merged result is capped at 20.
      - `key` string, required — Metadata key (max 20 characters)
      - `val` unknown, required
      - `type` 'string' | 'integer' | 'float' | 'date' | 'datetime' — Data type of the metadata value

## Response `200`

Successfully created Google Drive data source

- GoogleDrive
  - `id` string, required — Google Drive data source ID
  - `ingestion_setting_id` string — Google Drive ingestion setting ID
  - `name` string, required — Name of the Google Drive ingestion setting
  - `folder_url` string, required — Google Drive folder URL
  - `creation_time` integer — Creation time (Unix timestamp in seconds)
  - `status` 'unknown' | 'queued' | 'not_started' | 'managed' | 'starting' | 'started' | 'success' | 'failure' | 'canceling' | 'canceled' | 'deleting' | 'delete_job_failure', required — Job status
  - `start_time` integer — Job start time (Unix timestamp in seconds)
  - `end_time` integer — Job end time (Unix timestamp in seconds)
  - `error` JobError, nullable
    - `title` string — Error title
    - `message` string — Error message
  - `metadata` Metadata
    - `records` MetadataRecord[] — List of metadata records. A patch may contain up to 40 items; the merged result is capped at 20.
      - `key` string, required — Metadata key (max 20 characters)
      - `val` unknown, required
      - `type` 'string' | 'integer' | 'float' | 'date' | 'datetime' — Data type of the metadata value

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

---

[API](https://skmtc.net/qlonolink/apis/qaip-apis.md) · [All operations](https://skmtc.net/qlonolink/apis/qaip-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/qlonolink/qaip-apis/revisions/f5f5994dfe05/schema)
