# Lineitems: uploadlineitems

> [!CAUTION]
> The Line Items Settings service of the Bid Manager API has been sunset. Users must migrate to the [DV360 API](https://developers.google.com/display-video/api/reference/rest).

> [!NOTE]
> **Note:** Requires [authorization](https://developers.google.com/bid-manager/v1.1/lineitems/uploadlineitems#auth).

Uploads line items in CSV format. YouTube \& partners line items are not supported.
[Try it now](https://developers.google.com/bid-manager/v1.1/lineitems/uploadlineitems#try-it).

## Request

### HTTP request

```
POST https://www.googleapis.com/doubleclickbidmanager/v1.1/lineitems/uploadlineitems
```

### Authorization

This request requires authorization with the following scope:

| Scope |
|---|
| `https://www.googleapis.com/auth/doubleclickbidmanager` |

For more information, see the [authentication and authorization](https://developers.google.com/bid-manager/how-tos/authorizing) page.

### Request body

In the request body, supply data with the following structure:

```
{
  "lineItems": string,
  "format": string,
  "dryRun": boolean
}
```

| Property name | Value | Description | Notes |
|---|---|---|---|
| `lineItems` | `string` | Line items in CSV to upload. For more information about file formats, see [Entity Write File Format](https://developers.google.com/bid-manager/guides/entity-write/format). |   |
| `format` | `string` | Format the line items are in. Default to `CSV`. <br /> Acceptable values are: - "`CSV`" |   |
| `dryRun` | `boolean` | Set to `true` to get upload status without actually persisting the line items. |   |

## Response

If successful, this method returns a response body with the following structure:

```
{
  "uploadStatus": {
    "errors": [
      string
    ],
    "rowStatus": [
      {
        "rowNumber": integer,
        "entityId": long,
        "entityName": string,
        "changed": boolean,
        "persisted": boolean,
        "errors": [
          string
        ]
      }
    ]
  }
}
```

| Property name | Value | Description | Notes |
|---|---|---|---|
| `uploadStatus` | `nested object` | Status of upload. |   |
| `uploadStatus.errors[]` | `list` | Reasons why upload can't be completed. |   |
| `uploadStatus.rowStatus[]` | `list` | Per-row upload status. |   |
| `uploadStatus.rowStatus[].rowNumber` | `integer` | Row number. |   |
| `uploadStatus.rowStatus[].entityId` | `long` | Entity Id. |   |
| `uploadStatus.rowStatus[].entityName` | `string` | Entity name. |   |
| `uploadStatus.rowStatus[].changed` | `boolean` | Whether the stored entity is changed as a result of upload. |   |
| `uploadStatus.rowStatus[].persisted` | `boolean` | Whether the entity is persisted. |   |
| `uploadStatus.rowStatus[].errors[]` | `list` | Reasons why the entity can't be uploaded. |   |

## Try it!


Use the APIs Explorer below to call this method on live data and see the response.
Alternatively, try the
[standalone
Explorer](https://developers.google.com/apis-explorer/#p/doubleclickbidmanager/v1.1/doubleclickbidmanager.lineitems.uploadlineitems).