Skip to main content

Google Drive API Data Source

The Google Drive API connector enables you to ingest file metadata, file listings, permissions, comments, and other Drive content into Nexla data flows. Follow the instructions below to create a new data flow that ingests data from a Google Drive API source in Nexla.
google_drive_api_data_source.png

Google Drive API

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Google Drive API connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Google Drive API, and click Next; or, create a new Google Drive API credential for use in this flow.

  3. In Nexla, Google Drive API data sources can be created using pre-built endpoint templates, which expedite source setup for common Google Drive API endpoints. Each template is designed specifically for the corresponding Google Drive API endpoint, making data source setup easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Google Drive API sources can also be configured manually, allowing you to ingest data from Google Drive API endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Google Drive API endpoints. Each template is designed specifically for the corresponding Google Drive API endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    Files List

    Retrieves files and folders from Google Drive with metadata including name, type, size, and sharing info. Use this endpoint to build file inventories, audit Drive contents, or sync file metadata with downstream systems.

    • Sends a GET request to https://www.googleapis.com/drive/v3/files with a fields parameter specifying the metadata fields to return.
    • Response data is extracted from $.files[*], treating each file or folder as a separate record.
    • Configure the following parameter: Drive Query Filter — an optional query string to filter results (e.g., mimeType='application/vnd.google-apps.folder' to return only folders, or trashed=false to exclude deleted files).

    The Google Drive API v3 requires the fields query parameter to control which response fields are returned. The template pre-configures common metadata fields including id, name, mimeType, size, createdTime, and modifiedTime.

    Files in Folder

    Lists all files within a specific Google Drive folder. Use this endpoint to inventory the contents of a specific folder, monitor folder-level activity, or process files stored in a designated Drive location.

    • Sends a GET request to https://www.googleapis.com/drive/v3/files with a query filter scoped to the specified folder ID.
    • Response data is extracted from $.files[*], treating each file as a separate record.
    • Configure the following parameter: Folder ID — the unique identifier of the Google Drive folder whose contents will be listed.

    Folder IDs can be found in the Google Drive web app by selecting a folder and checking the URL, or retrieved from the Files List endpoint by filtering for mimeType='application/vnd.google-apps.folder'.

    File Metadata

    Retrieves detailed metadata for a specific file by its file ID. Use this endpoint when you need the complete metadata record for a single known file, including all available properties.

    • Sends a GET request to https://www.googleapis.com/drive/v3/files/{'{fileId}'} and returns the full metadata object for the specified file.
    • Response data is extracted from $ (the root object), returning a single file metadata record.
    • Configure the following parameter: File ID — the unique identifier of the file for which metadata will be retrieved.

    File IDs can be obtained from the Files List, Files in Folder, or Search Files endpoints. Use lookup-based macros to iterate over a list of file IDs and retrieve detailed metadata for each.

    File Permissions

    Retrieves sharing permissions for a specific file or folder. Use this endpoint to audit who has access to Drive files, generate sharing reports, or identify files with overly broad permissions.

    • Sends a GET request to https://www.googleapis.com/drive/v3/files/{'{fileId}'}/permissions and returns all permission records for the specified file.
    • Response data is extracted from $.permissions[*], treating each permission entry as a separate record.
    • Configure the following parameter: File ID — the unique identifier of the file or folder for which permissions will be retrieved.

    Permission records include the grantee's email, role (owner, writer, reader, commenter), and permission type (user, group, domain, anyone). This endpoint is particularly useful for security and compliance audits.

    Shared Drives

    Lists all available Google Shared Drives (formerly Team Drives) accessible to the authenticated user. Use this endpoint to inventory shared drive configurations or synchronize shared drive metadata with external systems.

    Shared drive IDs returned by this endpoint can be used as the driveId parameter when listing files within a specific shared drive using the Files List endpoint.

    File Revisions

    Lists the revision history for a specific file. Use this endpoint to track document version history, audit content changes over time, or build version-aware data pipelines.

    • Sends a GET request to https://www.googleapis.com/drive/v3/files/{'{fileId}'}/revisions and returns all revision records for the specified file.
    • Response data is extracted from $.revisions[*], treating each revision as a separate record.
    • Configure the following parameter: File ID — the unique identifier of the file for which revision history will be retrieved.

    Revision history is only available for files stored in Google Docs Editors formats (Docs, Sheets, Slides, etc.). Binary files uploaded to Drive do not have a revision history accessible via this endpoint.

    Drive About / User Info

    Retrieves Google Drive storage quota, user info, and account details. Use this endpoint to monitor storage usage, report on quota consumption, or retrieve user identity information for the authenticated account.

    Storage quota fields include limit, usage, usageInDrive, and usageInDriveTrash — all expressed in bytes.

    Drive Changes (Incremental)

    Tracks incremental changes to files and folders in Google Drive using a start page token. Use this endpoint for efficient ongoing synchronization that fetches only files added, modified, or deleted since the last sync.

    • Sends a GET request to https://www.googleapis.com/drive/v3/changes with a pageToken parameter identifying the point from which to retrieve changes.
    • Response data is extracted from $.changes[*], treating each change event as a separate record.
    • Configure the following parameter: Start Page Token — the page token from which to start retrieving changes. Obtain the initial token from the Drive Changes start page token endpoint before using this endpoint for the first time.

    The newStartPageToken field in the response should be stored and used as the pageToken for the next incremental sync run. This is the recommended pattern for building efficient, ongoing Drive synchronization flows.

    Search Files

    Searches for files across Google Drive using a custom query string. Use this endpoint to locate specific files matching criteria such as file type, name pattern, owner, or modification date.

    • Sends a GET request to https://www.googleapis.com/drive/v3/files with a q query parameter containing the search expression.
    • Response data is extracted from $.files[*], treating each matching file as a separate record.
    • Configure the following parameter: Search Query — a Google Drive query string expression (e.g., name contains 'report' and mimeType='application/pdf').

    Google Drive query syntax supports filtering by name, MIME type, owner, sharing settings, modification date, and more. Refer to the Google Drive search query documentation for the full list of supported operators and fields.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Google Drive API sources can also be configured manually, allowing you to ingest data from Google Drive API endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.

First, select the method that will be used for calls to the Google Drive API from the Method pulldown menu. For most data retrieval use cases, select GET. The available methods are:

  • GET — For retrieving file metadata, file listings, permissions, comments, revisions, and other Drive resources.
  • POST — For creating new files, initiating uploads, or triggering Drive operations.
  • PATCH — For partially updating existing file metadata or permissions.
  • DELETE — For removing files or permissions.

API Endpoint URL

  1. Enter the URL of the Google Drive API endpoint from which this source will fetch data in the Set API URL field. The Google Drive REST API v3 base URL is https://www.googleapis.com/drive/v3/. Common endpoint patterns include:

    • List files: https://www.googleapis.com/drive/v3/files — Returns a list of files and folders in the user's Drive. Supports query parameters such as q for filtering, fields for field selection, and pageSize for controlling the number of results.
    • Get file metadata: https://www.googleapis.com/drive/v3/files/{fileId} — Returns metadata for a specific file identified by its ID. Replace {fileId} with the actual file ID.
    • List permissions: https://www.googleapis.com/drive/v3/files/{fileId}/permissions — Returns a list of permissions for a specific file.
    • List comments: https://www.googleapis.com/drive/v3/files/{fileId}/comments — Returns comments on a specific file.
    • List revisions: https://www.googleapis.com/drive/v3/files/{fileId}/revisions — Returns a list of revisions for a specific file.
    • List shared drives: https://www.googleapis.com/drive/v3/drives — Returns a list of shared drives accessible to the authenticated user.

    The Google Drive API v3 requires the fields query parameter to specify which response fields to return. For example, appending ?fields=files(id,name,mimeType,modifiedTime) to a files list request returns only the specified fields for each file. For complete field documentation, refer to the Google Drive API v3 reference.

Date/Time Macros (API URL)

Optional

Optionally, the API URL can be customized using macros — all macros added to the API URL will be converted into values when Nexla executes the API call. Macros are dynamic placeholders that allow you to create flexible API endpoints that can adapt to different time periods or data requirements.

Date/time macros are particularly useful when querying the Google Drive API for recently modified files. For example, you can use a macro in a q filter parameter to retrieve only files modified after a specific date, such as modifiedTime > '{now-1}'.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime — for example, enter (now-4) to indicate the datetime four time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. This format will be applied to the base datetime value of the macro — i.e., the value of {now} in {now-1}. The Google Drive API expects RFC 3339 date-time format (e.g., 2024-01-15T00:00:00Z) for filter query parameters.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu — for example, for the macro {now-1}, when Day is selected, {now-1} will be converted to the datetime one day before the current datetime.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. Lookup-based macros allow you to reference data from previously configured data sources or lookups, enabling dynamic API endpoints that can adapt based on existing data.

Lookup-based macros are useful for Google Drive API configurations where you need to iterate over a list of file IDs or folder IDs retrieved from another Nexla source. For example, you can use a lookup to populate the {fileId} path parameter in an endpoint URL dynamically for each record in the upstream Nexset.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data returned by the Google Drive API endpoint is needed, you can designate the part of the response that should be included in the Nexsets produced from this source by specifying the path to the relevant data. This is particularly useful because Google Drive API responses typically wrap the array of results inside a named property, surrounded by pagination metadata.

For example, when listing files, the API returns a JSON response with a top-level files property containing the array of file objects alongside a nextPageToken for pagination. By specifying the path to the files array, Nexla treats each file object as an individual record.

Path to Data is essential for Google Drive API responses. Without specifying the correct path, Nexla will treat the entire response (including pagination metadata) as a single record rather than parsing individual file or resource objects.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For responses in JSON format, enter the JSON path that points to the object or array that should be treated as relevant data. JSON paths use dot notation (e.g., $.files[*] to access the files array returned by the files list endpoint).

    Common Google Drive API path-to-data values:

    • Files list: $.files[*]
    • Permissions list: $.permissions[*]
    • Comments list: $.comments[*]
    • Revisions list: $.revisions[*]
    • Drives list: $.drives[*]
    Path to Data Example:

    For the Google Drive API files list endpoint (https://www.googleapis.com/drive/v3/files), the response JSON contains a top-level array named files. Enter $.files[*] in the Set Path to Data in Response field to configure Nexla to treat each file object as a separate record.

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content and format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

    PathSuggestions.png

Metadata

If metadata is included in the response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record. This is useful when you want to preserve important contextual information that applies to all records but is not part of the main data array.

For example, the Google Drive API files list response includes a nextPageToken and other pagination metadata at the top level of the JSON response. These values are outside the files array and can be captured as metadata by specifying their path.

Metadata paths are particularly useful for preserving pagination tokens, response timestamps, or summary statistics that apply to all records in a Google Drive API response.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For responses in JSON format, enter the JSON path to the object or array that contains the metadata.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers and corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2). Additional headers may be needed for API versioning or content type specifications.

    You do not need to include any headers already present in the credentials. The OAuth 2.0 Authorization header is handled automatically by Nexla based on your Google Drive API credential configuration.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched and displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new Google Drive API data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.