---
title: "POST /v1/{+parent}/transferConfigs"
method: POST
path: "/v1/{+parent}/transferConfigs"
tags: ["projects"]
---

# POST /v1/{+parent}/transferConfigs

`POST /v1/{+parent}/transferConfigs`

Creates a new data transfer configuration.

## Path parameters

- `parent` string, required

## Query parameters

- `authorizationCode` string
- `serviceAccountName` string
- `versionInfo` string

## Request body

- TransferConfig — Represents a data transfer configuration. A transfer configuration contains all metadata needed to perform a data transfer. For example, `destination_dataset_id` specifies where data should be stored. When a new transfer configuration is created, the specified `destination_dataset_id` is created when needed and shared with the appropriate data source service account.
  - `schedule` string — Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: The minimum interval time between recurring transfers depends on the data source; refer to the documentation for your data source.
  - `encryptionConfiguration` EncryptionConfiguration — Represents the encryption configuration for a transfer.
    - `kmsKeyName` string — The name of the KMS key used for encrypting BigQuery data.
  - `displayName` string — User specified display name for the data transfer.
  - `updateTime` string, google-datetime — Output only. Data transfer modification time. Ignored by server on input.
  - `metadataDestination` MetadataDestination — The metadata destination of the transfer config.
    - `dataplexConfiguration` DataplexConfiguration — Configuration for Dataplex destination.
      - `entryGroup` string — Required. The Dataplex Universal Catalog entry group for importing the metadata. entry_group has the format of `projects/{project_id}/locations/{region}/entryGroups/{entry_group_id}`.
  - `datasetRegion` string — Output only. Region in which BigQuery dataset is located.
  - `error` Status — The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `message` string — A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
    - `details` object[] — A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `code` integer — The status code, which should be an enum value of google.rpc.Code.
  - `userId` string, int64 — Deprecated. Unique ID of the user on whose behalf transfer is done.
  - `scheduleOptions` ScheduleOptions — Options customizing the data transfer schedule.
    - `disableAutoScheduling` boolean — If true, automatic scheduling of data transfer runs for this configuration will be disabled. The runs can be started on ad-hoc basis using StartManualTransferRuns API. When automatic scheduling is disabled, the TransferConfig.schedule field will be ignored.
    - `endTime` string, google-datetime — Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.
    - `startTime` string, google-datetime — Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.
  - `dataRefreshWindowDays` integer — The number of days to look back to automatically refresh the data. For example, if `data_refresh_window_days = 10`, then every day BigQuery reingests data for [today-10, today-1], rather than ingesting data for just [today-1]. Only valid if the data source supports the feature. Set the value to 0 to use the default value.
  - `destinationDatasetId` string — The BigQuery target dataset id.
  - `dataSourceId` string — Data source ID. This cannot be changed once data transfer is created. The full list of available data source IDs can be returned through an API call: https://cloud.google.com/bigquery-transfer/docs/reference/datatransfer/rest/v1/projects.locations.dataSources/list
  - `nextRunTime` string, google-datetime — Output only. Next time when data transfer will run.
  - `emailPreferences` EmailPreferences — Represents preferences for sending email notifications for transfer run events.
    - `enableFailureEmail` boolean — If true, email notifications will be sent on transfer run failures.
  - `name` string — Identifier. The resource name of the transfer config. Transfer config names have the form either `projects/{project_id}/locations/{region}/transferConfigs/{config_id}` or `projects/{project_id}/transferConfigs/{config_id}`, where `config_id` is usually a UUID, even though it is not guaranteed or required. The name is ignored when creating a transfer config.
  - `scheduleOptionsV2` ScheduleOptionsV2 — V2 options customizing different types of data transfer schedule. This field supports existing time-based and manual transfer schedule. Also supports Event-Driven transfer schedule. ScheduleOptionsV2 cannot be used together with ScheduleOptions/Schedule.
    - `eventDrivenSchedule` EventDrivenSchedule — Options customizing EventDriven transfers schedule.
      - `pubsubSubscription` string — Pub/Sub subscription name used to receive events. Only Google Cloud Storage data source support this option. Format: projects/{project}/subscriptions/{subscription}
    - `timeBasedSchedule` TimeBasedSchedule — Options customizing the time based transfer schedule. Options are migrated from the original ScheduleOptions message.
      - `schedule` string — Data transfer schedule. If the data source does not support a custom schedule, this should be empty. If it is empty, the default value for the data source will be used. The specified times are in UTC. Examples of valid format: `1st,3rd monday of month 15:30`, `every wed,fri of jan,jun 13:15`, and `first sunday of quarter 00:00`. See more explanation about the format here: https://cloud.google.com/appengine/docs/flexible/python/scheduling-jobs-with-cron-yaml#the_schedule_format NOTE: The minimum interval time between recurring transfers depends on the data source; refer to the documentation for your data source.
      - `startTime` string, google-datetime — Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment.
      - `endTime` string, google-datetime — Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment.
    - `manualSchedule` ManualSchedule — Options customizing manual transfers schedule.
  - `managedTableType` 'MANAGED_TABLE_TYPE_UNSPECIFIED' | 'NATIVE' | 'BIGLAKE' — The classification of the destination table.
  - `params` object — Parameters specific to each data source. For more information see the bq tab in the 'Setting up a data transfer' section for each data source. For example the parameters for Cloud Storage transfers are listed here: https://cloud.google.com/bigquery-transfer/docs/cloud-storage-transfer#bq
  - `disabled` boolean — Is this config disabled. When set to true, no runs will be scheduled for this transfer config.
  - `notificationPubsubTopic` string — Pub/Sub topic where notifications will be sent after transfer runs associated with this transfer config finish. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`
  - `state` 'TRANSFER_STATE_UNSPECIFIED' | 'PENDING' | 'RUNNING' | 'SUCCEEDED' | 'FAILED' | 'CANCELLED' — Output only. State of the most recently updated transfer run.
  - `ownerInfo` UserInfo — Information about a user.
    - `email` string — E-mail address of the user.

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/bigquerydatatransfer.md) · [All operations](https://skmtc.dev/google/apis/bigquerydatatransfer/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/bigquerydatatransfer/revisions/626433483a73/schema)
