---
metadata:
  - name: generator
    content: Diplodoc Platform v5.48.2
alternate:
  - https://yandex.com/dev/metrika/en/management/openapi/expense/uploadMultipart.md
  - https://yandex.com/dev/metrika/ru/management/openapi/expense/uploadMultipart.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/metrika/en/llms.txt

<!-- source: en/management-src/Managing-ad-spending-uploads/uploadMultipart.md -->
<div class="openapi">

# Uploading expenses as multipart/form-data

<!-- markdownlint-disable-file -->

Uploads expenses.

{% note warning %}

The Yandex Direct data is sent to Yandex Metrica automatically, so you don't have to upload it manually.
Uploading a data file will create duplicates with the automatically sent data, making the report incorrect.

{% endnote %}

Data is passed as `multipart/form-data` in the `file` parameter in CSV format. In the first line of the request, pass the names of the columns.

Required columns:
- `Date`: String, a date in YYYY-MM-DD format or a range of dates in YYYY-MM-DD/YYYY-MM-DD format.
- `UTMSource`: String, utm_source label value. Optional if `TrafficSource` is passed.
- `TrafficSource`: First-level traffic source. Acceptable values are given in the [table](https://yandex.com/dev/metrika/en/management/table-source.md).
- `Expenses`: Number, amount of expenses, with a full stop (.) as the decimal separator.

Optional columns:
- `TrafficSourceDetail`: Second-level traffic source. Acceptable values are given in the [table](https://yandex.com/dev/metrika/en/management/table-source.md).
- `UTMMedium`: String, `utm_medium` label value.
- `UTMCampaign`: String, `utm_campaign` label value.
- `UTMTerm`: String, utm_term label value.
- `UTMContent`: String, utm_content label value.
- `Currency`: String, a three-letter [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) currency code.
- `Clicks`: Number, click count.

{% note info %}

The values of UTM tags are case-sensitive. You need to remember this when you upload or delete data.

{% endnote %}

## Request

<div class="openapi__requests">

<div class="openapi__request__wrapper" style="--method: var(--dc-openapi-methods-post);margin-bottom: 12px">

<div class="openapi__request">

POST {.openapi__method}
```text translate=no
https://api-metrika.yandex.net/management/v1/counter/{counterId}/expense/upload
```

</div>

</div>

</div>

### Path parameters

#|
|| **Name** | **Description** ||
||

_counterId_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: integer

ID of the tag for which you want to upload expenses.
{.table-cell}
||
|#{.json-schema-properties}

### Query parameters

#|
|| **Name** | **Description** ||
||

_comment_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

Comment.

_Example:_{.json-schema-reset .json-schema-example} ``
{.table-cell}
||
||

_provider_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

A service that sends data to Yandex Metrica (provider). If not set, the value `default` is used.

_Example:_{.json-schema-reset .json-schema-example} ``
{.table-cell}
||
|#{.json-schema-properties}

<div class="openapi-entity">

### Body

{% cut "multipart/form-data" %}

```json translate=no
{
  "file": "example"
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_file_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: string&lt;binary&gt;

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
|#{.json-schema-properties}

</div>

## Responses

<div class="openapi__response__code__200">

## 200 OK

OK

<div class="openapi-entity">

### Body

{% cut "application/json" %}

```json translate=no
{
  "uploading": {
    "id": 0,
    "create_time": "2025-01-01T00:00:00Z",
    "source_quantity": 0,
    "provider": "example",
    "comment": "example",
    "type": "example",
    "status": "example"
  }
}
```

{% endcut %}

#|
|| **Name** | **Description** ||
||

_uploading_{.json-schema-reset .json-schema-property .json-schema-required}
{.table-cell}|
**Type**: [ExpenseUploading](#entity-ExpenseUploading)

Information about expense uploads.

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "id": 0,
  "create_time": "2025-01-01T00:00:00Z",
  "source_quantity": 0,
  "provider": "example",
  "comment": "example",
  "type": "example",
  "status": "example"
}
```

{% endcut %}
{.table-cell}
||
|#{.json-schema-properties}

</div>

<div class="openapi-entity">

### ExpenseUploading {#entity-ExpenseUploading}

Information about expense uploads.

#|
|| **Name** | **Description** ||
||

_comment_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

Comment.

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_create_time_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string&lt;date-time&gt;

Upload time.

_Example:_{.json-schema-reset .json-schema-example} `2025-01-01T00:00:00Z`
{.table-cell}
||
||

_id_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: integer

Upload ID.
{.table-cell}
||
||

_provider_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

Data provider name.

_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_source_quantity_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: integer

Number of rows in the source file.
{.table-cell}
||
||

_status_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

Upload status:
- `UPLOADED`: Upload complete.
- `IN_PROGRESS`: Upload in progress.
- `PROCESSED`: Upload processed.


_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
||

_type_{.json-schema-reset .json-schema-property}
{.table-cell}|
**Type**: string

Upload type:
- `EXPENSES`: Expenses.
- `REMOVES`: Deleting expenses.


_Example:_{.json-schema-reset .json-schema-example} `example`
{.table-cell}
||
|#{.json-schema-properties}

{% cut "**Example**" %}{.json-schema-example}

```json translate=no
{
  "id": 0,
  "create_time": "2025-01-01T00:00:00Z",
  "source_quantity": 0,
  "provider": "example",
  "comment": "example",
  "type": "example",
  "status": "example"
}
```

{% endcut %}

</div>

</div>

</div>
<!-- endsource: en/management-src/Managing-ad-spending-uploads/uploadMultipart.md -->

[*Deprecated]: No longer supported, please use an alternative and newer version.