- [HTTP request](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.HTTP_TEMPLATE)
- [Request body](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.response_body)
- [Authorization scopes](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.aspect)
- [ParentEntityFilter](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#ParentEntityFilter)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#ParentEntityFilter.SCHEMA_REPRESENTATION)
- [FileType](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#FileType)
- [FilterType](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#FilterType)
- [IdFilter](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#IdFilter)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#IdFilter.SCHEMA_REPRESENTATION)
- [InventorySourceFilter](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#InventorySourceFilter)
  - [JSON representation](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#InventorySourceFilter.SCHEMA_REPRESENTATION)
- [Try it!](https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#try-it)

Creates an SDF Download Task. Returns an `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation`.

An SDF Download Task is a long-running, asynchronous operation. The `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.metadata` type of this operation is `https://developers.google.com/display-video/api/reference/rest/v4/SdfDownloadTaskMetadata`. If the request is successful, the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.response` type of the operation is `https://developers.google.com/display-video/api/reference/rest/v4/SdfDownloadTask`. The response will not include the download files, which must be retrieved with `https://developers.google.com/display-video/api/reference/rest/v4/media/download#google.bytestream.RestByteStream.GetMedia`.

The state of operation can be retrieved with `sdfdownloadtasks.operations.get`.

Any errors can be found in the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.error`. Note that `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation.FIELDS.error` is expected to be empty.

### HTTP request

`POST https://displayvideo.googleapis.com/v4/sdfdownloadtasks`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "version": enum (`https://developers.google.com/display-video/api/reference/rest/v4/SdfConfig#SdfVersion`), // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "partnerId": string, "advertiserId": string // End of mutually exclusive fields. // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "parentEntityFilter": { object (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#ParentEntityFilter`) }, "idFilter": { object (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#IdFilter`) }, "inventorySourceFilter": { object (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#InventorySourceFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `version` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v4/SdfConfig#SdfVersion`)`` Required. The SDF version of the downloaded file. If set to `SDF_VERSION_UNSPECIFIED`, this will default to the version specified by the advertiser or partner identified by `root_id`. An advertiser inherits its SDF version from its partner unless configured otherwise. |
| Required. The root ID determines the context of the download request. Exactly one field must be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `partnerId` | `string (https://developers.google.com/discovery/v1/type-format format)` The ID of the partner to download SDF for. |
| `advertiserId` | `string (https://developers.google.com/discovery/v1/type-format format)` The ID of the advertiser to download SDF for. |
| End of mutually exclusive fields. ||
| Required. Options that specify the entity types and ranges to download. Exactly one field must be set. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `parentEntityFilter` | ``object (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#ParentEntityFilter`)`` Filters on selected file types. The entities in each file are filtered by a chosen set of filter entities. The filter entities must be the same type as, or a parent type of, the selected file types. |
| `idFilter` | ``object (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#IdFilter`)`` Filters on entities by their entity IDs. |
| `inventorySourceFilter` | ``object (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#InventorySourceFilter`)`` Filters on Inventory Sources by their IDs. |
| End of mutually exclusive fields. ||

### Response body

If successful, the response body contains a newly created instance of `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks.operations#Operation`.

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/display-video`

For more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2).

## ParentEntityFilter

A filtering option that filters on selected file types belonging to a chosen set of filter entities.

| JSON representation |
|---|
| ``` { "fileType": [ enum (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#FileType`) ], "filterType": enum (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#FilterType`), "filterIds": [ string ] } ``` |

| Fields ||
|---|---|
| `fileType[]` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#FileType`)`` Required. File types that will be returned. |
| `filterType` | ``enum (`https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#FilterType`)`` Required. Filter type used to filter fetched entities. |
| `filterIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` The IDs of the specified filter type. This is used to filter entities to fetch. If filter type is not `FILTER_TYPE_NONE`, at least one ID must be specified. |

## FileType

Possible types of files that can be downloaded.

| Enums ||
|---|---|
| `FILE_TYPE_UNSPECIFIED` | Default value when type is unspecified or is unknown in this version. |
| `FILE_TYPE_CAMPAIGN` | Campaign. |
| `FILE_TYPE_MEDIA_PRODUCT` | Media Product. |
| `FILE_TYPE_INSERTION_ORDER` | Insertion Order. |
| `FILE_TYPE_LINE_ITEM` | Line Item. |
| `FILE_TYPE_AD_GROUP` | YouTube Ad Group. |
| `FILE_TYPE_AD` | YouTube Ad. |
| `FILE_TYPE_LINE_ITEM_QA` | Line Item - QA format. |
| `FILE_TYPE_AD_GROUP_QA` | YouTube Ad Group - QA format. |

## FilterType

Possible types that can be filtered on.

| Enums ||
|---|---|
| `FILTER_TYPE_UNSPECIFIED` | Default value when type is unspecified or is unknown in this version. |
| `FILTER_TYPE_NONE` | If selected, no filter will be applied to the download. Can only be used if an `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` is specified in `CreateSdfDownloadTaskRequest`. |
| `FILTER_TYPE_ADVERTISER_ID` | Advertiser ID. If selected, all filter IDs must be Advertiser IDs that belong to the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `FILTER_TYPE_CAMPAIGN_ID` | Campaign ID. If selected, all filter IDs must be Campaign IDs that belong to the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `FILTER_TYPE_MEDIA_PRODUCT_ID` | Media Product ID. If selected, all filter IDs must be Media Product IDs that belong to the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. Can only be used for downloading `FILE_TYPE_MEDIA_PRODUCT`. |
| `FILTER_TYPE_INSERTION_ORDER_ID` | Insertion Order ID. If selected, all filter IDs must be Insertion Order IDs that belong to the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. Can only be used for downloading `FILE_TYPE_INSERTION_ORDER`, `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_LINE_ITEM_QA`, `FILE_TYPE_AD_GROUP`, `FILE_TYPE_AD_GROUP_QA`, and `FILE_TYPE_AD`. |
| `FILTER_TYPE_LINE_ITEM_ID` | Line Item ID. If selected, all filter IDs must be Line Item IDs that belong to the `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. Can only be used for downloading `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_LINE_ITEM_QA`,`FILE_TYPE_AD_GROUP`, `FILE_TYPE_AD_GROUP_QA`, and `FILE_TYPE_AD`. |

## IdFilter

A filtering option that filters entities by their entity IDs.

| JSON representation |
|---|
| ``` { "campaignIds": [ string ], "mediaProductIds": [ string ], "insertionOrderIds": [ string ], "lineItemIds": [ string ], "adGroupIds": [ string ], "adGroupAdIds": [ string ], "lineItemQaIds": [ string ], "adGroupQaIds": [ string ] } ``` |

| Fields ||
|---|---|
| `campaignIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Campaigns to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `mediaProductIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Media Products to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `insertionOrderIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Insertion Orders to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `lineItemIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Line Items to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `adGroupIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` YouTube Ad Groups to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `adGroupAdIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` YouTube Ads to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `lineItemQaIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. Line Items, by ID, to download in QA format. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |
| `adGroupQaIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. YouTube Ad Groups, by ID, to download in QA format. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. |

## InventorySourceFilter

A filtering option for filtering on Inventory Source entities.

| JSON representation |
|---|
| ``` { "inventorySourceIds": [ string ] } ``` |

| Fields ||
|---|---|
| `inventorySourceIds[]` | `string (https://developers.google.com/discovery/v1/type-format format)` Inventory Sources to download by ID. All IDs must belong to the same `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.advertiser_id` or `https://developers.google.com/display-video/api/reference/rest/v4/sdfdownloadtasks/create#body.request_body.FIELDS.partner_id` specified in `CreateSdfDownloadTaskRequest`. Leave empty to download all Inventory Sources for the selected Advertiser or Partner. |