---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.com/dev/market/partner-api/doc/en/reference/reports/generateSalesGeographyReport.md
  - https://yandex.com/dev/market/partner-api/doc/ru/reference/reports/generateSalesGeographyReport.md
  - https://yandex.com/dev/market/partner-api/doc/zh/reference/reports/generateSalesGeographyReport.md
  - href: en/reference/reports/generateSalesGeographyReport.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/market/partner-api/doc/en/llms.txt

{% note warning "The structure and content of the reports are subject to change without prior notice." %}

For example, a new column may be added or the name of the sheet may change.

{% endnote %}

<!-- source: en/api/reports/generateSalesGeographyReport.md -->
<div class="openapi">

# Sales Geography Report

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

{% list tabs %}

- Info

  
  <!-- source: en/_auto/method_scopes/generateSalesGeographyReport.md -->
  **The method is available for models: [FBY](https://yandex.com/dev/market/partner-api/doc/en/overview/fby.md), [FBS](https://yandex.com/dev/market/partner-api/doc/en/overview/fbs.md), [Express](https://yandex.com/dev/market/partner-api/doc/en/overview/express.md) and [DBS](https://yandex.com/dev/market/partner-api/doc/en/overview/dbs.md).**

  {% cut "**If you are using an API Key token, one of the accesses in the list is required to call the method**" %}

  * finance-and-accounting — [View financial data and reports](https://yandex.com/dev/market/partner-api/doc/en/_auto/scopes_summary/pages/finance-and-accounting.md)
  * all-methods — Full account management
  * all-methods:read-only — View all data

  {% endcut %}
  <!-- endsource: en/_auto/method_scopes/generateSalesGeographyReport.md -->
  
  
  Starts the generation of a report on the geography of sales. [What kind of report is this](https://yandex.ru/support/marketplace/ru/analytics/sales-geography)
  
  You can find out the generation status and get a link to the finished report using a request. [GET v2/reports/info/{reportId}](https://yandex.com/dev/market/partner-api/doc/en/reference/reports/getReportInfo.md).
  
  
  <!-- source: en/_auto/reports/locality/locality_offers_report_v2.md -->
  Explanation of the report columns:

  {% cut "Sheet **География продаж** (file **sales_geography**)" %}

  #|
  || **CSV column name** | **JSON column name** | **XLSX column name** | **Value type** ||
  || OFFER_ID | offerId | Информация о товарах/Ваш SKU | string ||
  || OFFER_NAME | offerName | Информация о товарах/Название товара | string ||
  || CATEGORY | category | Информация о товарах/Категория | string ||
  ||
  EXPENSES_ON_DELIVERY_IN_RUSSIA
  |
  expensesOnDeliveryInRussia
  |
  Доля локальных продаж и ваши расходы/Расходы на доставку по России
  |
  number
  ||
  || LOCAL_SALES | localSales | Доля локальных продаж и ваши расходы/Локальных продаж | integer ||
  || DELIVERED_ITEMS | deliveredItems | Доля локальных продаж и ваши расходы/Товаров доставлено | integer ||
  || CLUSTER_MOSCOW | clusterMoscow | Сколько товаров доставлено в конкретные кластеры/Москва | integer ||
  ||
  CLUSTER_ROSTOV_ON_DON
  |
  clusterRostovOnDon
  |
  Сколько товаров доставлено в конкретные кластеры/Ростов-на-Дону
  |
  integer
  ||
  ||
  CLUSTER_EKATERINBURG
  |
  clusterEkaterinburg
  |
  Сколько товаров доставлено в конкретные кластеры/Екатеринбург
  |
  integer
  ||
  ||
  CLUSTER_SAINT_PETERSBURG
  |
  clusterSaintPetersburg
  |
  Сколько товаров доставлено в конкретные кластеры/Санкт-Петербург
  |
  integer
  ||
  || CLUSTER_SAMARA | clusterSamara | Сколько товаров доставлено в конкретные кластеры/Самара | integer ||
  |#

  {% endcut %}
  <!-- endsource: en/_auto/reports/locality/locality_offers_report_v2.md -->
  
  
  
  <!-- source: en/_includes/common/report-data-period-400-days.md -->
  {% note warning "Ограничения по тарифному плану" %}


  The data upload period and the number of reports generated at the same time depend on your data plan:
  * **Without subscription or the "Light" tariff** — data for the last 90 days is available, and 1 report can be generated at a time
  * **The "Medium" tariff** — data for the last 400 days is available, and up to 10 reports can be generated simultaneously

  Read more about the subscription for sellers [in the Help of the Market for sellers](https://yandex.ru/support/marketplace/ru/marketing/subscription).


  {% endnote %}
  <!-- endsource: en/_includes/common/report-data-period-400-days.md -->
  
  
  
  <!-- source: en/_auto/method_limits/generateSalesGeographyReport.md -->
  |<div style="text-align: left;">**⚙️ Limit without subscription:** 1 request per 2 minutes<br>**⭐️ [Limit with Medium subscription](https://yandex.ru/support/marketplace/ru/marketing/subscription):** 1 request per minute</div>|
  |-|
  <!-- endsource: en/_auto/method_limits/generateSalesGeographyReport.md -->
  
  
  
  ## 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.partner.market.yandex.ru/v2/reports/sales-geography/generate
  ```
  
  </div>
  
  </div>
  
  </div>
  
  ### Query parameters
  
  #|
  || **Name** | **Description** ||
  ||
  
  _format_{.json-schema-reset .json-schema-property}
  {.table-cell}|
  **Type**: string
  
  The format of the report or document.
  Report format:
  
  * `FILE` — the spreadsheet file (XLSX).
  * `CSV` — A ZIP archive with CSV files for each report sheet.
  * `JSON` — A ZIP archive with JSON files for each report sheet.
  
  
  _Default:_{.json-schema-reset .json-schema-value} `FILE`
  
  _Enum:_{.json-schema-reset .json-schema-value} `FILE`, `CSV`, `JSON`
  {.table-cell}
  ||
  |#{.json-schema-properties}
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "businessId": 1,
    "dateFrom": "2025-08-22",
    "dateTo": "2025-09-22",
    "categoryIds": [
      0
    ],
    "offerIds": [
      "example"
    ]
  }
  ```
  
  {% endcut %}
  
  #|
  || **Name** | **Description** ||
  ||
  
  _businessId_{.json-schema-reset .json-schema-property .json-schema-required}
  {.table-cell}|
  **Type**: integer
  
  Cabinet ID.   To find out, use the request [GET v2/campaigns](https://yandex.com/dev/market/partner-api/doc/en/reference/campaigns/getCampaigns.md).
  
  ℹ️ [What is a cabinet and a store on the Market?](https://yandex.ru/support/marketplace/account/introduction.html)
  
  
  
  
  _Min value:_{.json-schema-reset .json-schema-assertion} `1`
  {.table-cell}
  ||
  ||
  
  _dateFrom_{.json-schema-reset .json-schema-property .json-schema-required}
  {.table-cell}|
  **Type**: string&lt;date&gt;
  
  The beginning of the period, inclusive.
  
  Date format: `YYYY-MM-DD`.
  
  
  _Example:_{.json-schema-reset .json-schema-example} `2025-08-22`
  {.table-cell}
  ||
  ||
  
  _dateTo_{.json-schema-reset .json-schema-property .json-schema-required}
  {.table-cell}|
  **Type**: string&lt;date&gt;
  
  End of the period, inclusive.
  
  Date format: `YYYY-MM-DD`.
  
  
  _Example:_{.json-schema-reset .json-schema-example} `2025-09-22`
  {.table-cell}
  ||
  ||
  
  _categoryIds_{.json-schema-reset .json-schema-property}
  {.table-cell}|
  **Type**: integer[] &#124; null
  
  Category IDs.
  
  _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
  _Max items:_{.json-schema-reset .json-schema-assertion} `1000`
  
  _Unique items:_{.json-schema-reset .json-schema-assertion} `true`
  
  {% cut "**Example**" %}{.json-schema-example}
  
  ```json translate=no
  [
    0
  ]
  ```
  
  {% endcut %}
  {.table-cell}
  ||
  ||
  
  _offerIds_{.json-schema-reset .json-schema-property}
  {.table-cell}|
  **Type**: string[] &#124; null
  
  Product IDs.
  
  _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
  _Max items:_{.json-schema-reset .json-schema-assertion} `1000`
  
  _Unique items:_{.json-schema-reset .json-schema-assertion} `true`
  
  {% cut "**Example**" %}{.json-schema-example}
  
  ```json translate=no
  [
    "example"
  ]
  ```
  
  {% endcut %}
  {.table-cell}
  ||
  |#{.json-schema-properties}
  
  </div>
  
  ## Responses
  
  <div class="openapi__response__code__200">
  
  ## 200 OK
  
  In response, you receive an identifier that allows you to find out the generation status and download the finished report.
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "status": "OK",
    "result": {
      "reportId": "example",
      "estimatedGenerationTime": 0
    }
  }
  ```
  
  {% endcut %}
  
  **Type**: object
  
  {% cut "**All of 2 types**" %}{.json-schema-combinators data-marker=and}
  
  - {% cut "**Type**: object" %}
  
    #|
    ||
  
    _status_{.json-schema-reset .json-schema-property .json-schema-required}
    {.table-cell}|
    **Type**: string
  
    The type of response.
    Possible values:
    * `OK` — There are no errors.
    * `ERROR` — an error occurred while processing the request.
  
  
    _Enum:_{.json-schema-reset .json-schema-value} `OK`, `ERROR`
    {.table-cell}
    ||
    |#{.json-schema-properties}
  
    {% endcut %}
  
    The standard wrapper for server responses.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "status": "OK"
    }
    ```
  
    {% endcut %}
  
  - {% cut "**Type**: object" %}
  
    #|
    ||
  
    _result_{.json-schema-reset .json-schema-property}
    {.table-cell}|
    {% cut "**Type**: object" %}
  
    #|
    ||
  
    _estimatedGenerationTime_{.json-schema-reset .json-schema-property .json-schema-required}
    {.table-cell}|
    **Type**: integer
  
    Expected generation time in milliseconds.
    {.table-cell}
    ||
    ||
  
    _reportId_{.json-schema-reset .json-schema-property .json-schema-required}
    {.table-cell}|
    **Type**: string
  
    The ID that will be needed to track the generation status and receive the finished report or document.
  
    _Example:_{.json-schema-reset .json-schema-example} `example`
    {.table-cell}
    ||
    |#{.json-schema-properties}
  
    {% endcut %}
  
    The ID that will be needed to track the generation status and receive the finished report or document.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "reportId": "example",
      "estimatedGenerationTime": 0
    }
    ```
  
    {% endcut %}
    {.table-cell}
    ||
    |#{.json-schema-properties}
  
    {% endcut %}
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "result": {
        "reportId": "example",
        "estimatedGenerationTime": 0
      }
    }
    ```
  
    {% endcut %}
  
  {% endcut %}
  
  </div>
  
  </div>
  
  <div class="openapi__response__code__400">
  
  ## 400 Bad Request
  
  The request contains incorrect data. [More information about the error](https://yandex.com/dev/market/partner-api/doc/en/concepts/error-codes.md#400)
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "status": "OK",
    "errors": [
      {
        "code": "example",
        "message": "example"
      }
    ]
  }
  ```
  
  {% endcut %}
  
  **Type**: object
  
  {% cut "**All of 1 type**" %}{.json-schema-combinators data-marker=and}
  
  - **Type**: object
  
    {% cut "**All of 2 types**" %}{.json-schema-combinators data-marker=and}
  
    - **Type**: object
  
      #|
      ||
  
      _status_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The type of response.
      Possible values:
      * `OK` — There are no errors.
      * `ERROR` — an error occurred while processing the request.
  
  
      _Enum:_{.json-schema-reset .json-schema-value} `OK`, `ERROR`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      The standard wrapper for server responses.
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "status": "OK"
      }
      ```
  
      {% endcut %}
  
    - **Type**: object
  
      #|
      ||
  
      _errors_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      {% cut "**Type**: object[]" %}
  
      #|
      ||
  
      _code_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The error code.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      ||
  
      _message_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      **Type**: string
  
      Description of the error.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% endcut %}
  
      A list of errors.
  
      _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      [
        {
          "code": "example",
          "message": "example"
        }
      ]
      ```
  
      {% endcut %}
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "errors": [
          {
            "code": "example",
            "message": "example"
          }
        ]
      }
      ```
  
      {% endcut %}
  
    {% endcut %}
  
    A standard wrapper for server errors.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    ```
  
    {% endcut %}
  
  {% endcut %}
  
  </div>
  
  </div>
  
  <div class="openapi__response__code__401">
  
  ## 401 Unauthorized
  
  The authorization data is not specified in the request. [More information about the error](https://yandex.com/dev/market/partner-api/doc/en/concepts/error-codes.md#401)
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "status": "OK",
    "errors": [
      {
        "code": "example",
        "message": "example"
      }
    ]
  }
  ```
  
  {% endcut %}
  
  **Type**: object
  
  {% cut "**All of 1 type**" %}{.json-schema-combinators data-marker=and}
  
  - **Type**: object
  
    {% cut "**All of 2 types**" %}{.json-schema-combinators data-marker=and}
  
    - **Type**: object
  
      #|
      ||
  
      _status_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The type of response.
      Possible values:
      * `OK` — There are no errors.
      * `ERROR` — an error occurred while processing the request.
  
  
      _Enum:_{.json-schema-reset .json-schema-value} `OK`, `ERROR`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      The standard wrapper for server responses.
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "status": "OK"
      }
      ```
  
      {% endcut %}
  
    - **Type**: object
  
      #|
      ||
  
      _errors_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      {% cut "**Type**: object[]" %}
  
      #|
      ||
  
      _code_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The error code.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      ||
  
      _message_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      **Type**: string
  
      Description of the error.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% endcut %}
  
      A list of errors.
  
      _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      [
        {
          "code": "example",
          "message": "example"
        }
      ]
      ```
  
      {% endcut %}
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "errors": [
          {
            "code": "example",
            "message": "example"
          }
        ]
      }
      ```
  
      {% endcut %}
  
    {% endcut %}
  
    A standard wrapper for server errors.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    ```
  
    {% endcut %}
  
  {% endcut %}
  
  </div>
  
  </div>
  
  <div class="openapi__response__code__403">
  
  ## 403 Forbidden
  
  The authorization data is incorrect or access to the resource is prohibited. [More information about the error](https://yandex.com/dev/market/partner-api/doc/en/concepts/error-codes.md#403)
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "status": "OK",
    "errors": [
      {
        "code": "example",
        "message": "example"
      }
    ]
  }
  ```
  
  {% endcut %}
  
  **Type**: object
  
  {% cut "**All of 1 type**" %}{.json-schema-combinators data-marker=and}
  
  - **Type**: object
  
    {% cut "**All of 2 types**" %}{.json-schema-combinators data-marker=and}
  
    - **Type**: object
  
      #|
      ||
  
      _status_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The type of response.
      Possible values:
      * `OK` — There are no errors.
      * `ERROR` — an error occurred while processing the request.
  
  
      _Enum:_{.json-schema-reset .json-schema-value} `OK`, `ERROR`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      The standard wrapper for server responses.
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "status": "OK"
      }
      ```
  
      {% endcut %}
  
    - **Type**: object
  
      #|
      ||
  
      _errors_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      {% cut "**Type**: object[]" %}
  
      #|
      ||
  
      _code_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The error code.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      ||
  
      _message_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      **Type**: string
  
      Description of the error.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% endcut %}
  
      A list of errors.
  
      _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      [
        {
          "code": "example",
          "message": "example"
        }
      ]
      ```
  
      {% endcut %}
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "errors": [
          {
            "code": "example",
            "message": "example"
          }
        ]
      }
      ```
  
      {% endcut %}
  
    {% endcut %}
  
    A standard wrapper for server errors.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    ```
  
    {% endcut %}
  
  {% endcut %}
  
  </div>
  
  </div>
  
  <div class="openapi__response__code__420">
  
  ## 420 Method Failure
  
  The resource access limit has been exceeded. [More information about the error](https://yandex.com/dev/market/partner-api/doc/en/concepts/error-codes.md#420)
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "status": "OK",
    "errors": [
      {
        "code": "example",
        "message": "example"
      }
    ]
  }
  ```
  
  {% endcut %}
  
  **Type**: object
  
  {% cut "**All of 1 type**" %}{.json-schema-combinators data-marker=and}
  
  - **Type**: object
  
    {% cut "**All of 2 types**" %}{.json-schema-combinators data-marker=and}
  
    - **Type**: object
  
      #|
      ||
  
      _status_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The type of response.
      Possible values:
      * `OK` — There are no errors.
      * `ERROR` — an error occurred while processing the request.
  
  
      _Enum:_{.json-schema-reset .json-schema-value} `OK`, `ERROR`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      The standard wrapper for server responses.
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "status": "OK"
      }
      ```
  
      {% endcut %}
  
    - **Type**: object
  
      #|
      ||
  
      _errors_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      {% cut "**Type**: object[]" %}
  
      #|
      ||
  
      _code_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The error code.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      ||
  
      _message_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      **Type**: string
  
      Description of the error.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% endcut %}
  
      A list of errors.
  
      _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      [
        {
          "code": "example",
          "message": "example"
        }
      ]
      ```
  
      {% endcut %}
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "errors": [
          {
            "code": "example",
            "message": "example"
          }
        ]
      }
      ```
  
      {% endcut %}
  
    {% endcut %}
  
    A standard wrapper for server errors.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    ```
  
    {% endcut %}
  
  {% endcut %}
  
  </div>
  
  </div>
  
  <div class="openapi__response__code__500">
  
  ## 500 Internal Server Error
  
  Internal error of the Market. [More information about the error](https://yandex.com/dev/market/partner-api/doc/en/concepts/error-codes.md#500)
  
  <div class="openapi-entity">
  
  ### Body
  
  {% cut "application/json" %}
  
  ```json translate=no
  {
    "status": "OK",
    "errors": [
      {
        "code": "example",
        "message": "example"
      }
    ]
  }
  ```
  
  {% endcut %}
  
  **Type**: object
  
  {% cut "**All of 1 type**" %}{.json-schema-combinators data-marker=and}
  
  - **Type**: object
  
    {% cut "**All of 2 types**" %}{.json-schema-combinators data-marker=and}
  
    - **Type**: object
  
      #|
      ||
  
      _status_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The type of response.
      Possible values:
      * `OK` — There are no errors.
      * `ERROR` — an error occurred while processing the request.
  
  
      _Enum:_{.json-schema-reset .json-schema-value} `OK`, `ERROR`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      The standard wrapper for server responses.
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "status": "OK"
      }
      ```
  
      {% endcut %}
  
    - **Type**: object
  
      #|
      ||
  
      _errors_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      {% cut "**Type**: object[]" %}
  
      #|
      ||
  
      _code_{.json-schema-reset .json-schema-property .json-schema-required}
      {.table-cell}|
      **Type**: string
  
      The error code.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      ||
  
      _message_{.json-schema-reset .json-schema-property}
      {.table-cell}|
      **Type**: string
  
      Description of the error.
  
      _Example:_{.json-schema-reset .json-schema-example} `example`
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% endcut %}
  
      A list of errors.
  
      _Min items:_{.json-schema-reset .json-schema-assertion} `1`
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      [
        {
          "code": "example",
          "message": "example"
        }
      ]
      ```
  
      {% endcut %}
      {.table-cell}
      ||
      |#{.json-schema-properties}
  
      {% cut "**Example**" %}{.json-schema-example}
  
      ```json translate=no
      {
        "errors": [
          {
            "code": "example",
            "message": "example"
          }
        ]
      }
      ```
  
      {% endcut %}
  
    {% endcut %}
  
    A standard wrapper for server errors.
  
    {% cut "**Example**" %}{.json-schema-example}
  
    ```json translate=no
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    ```
  
    {% endcut %}
  
  {% endcut %}
  
  </div>
  
  </div>
        

- Console

  ```openapi-sandbox translate=no
  pathParams: []
  searchParams:
    - description: The format of the report or document.
      name: format
      in: query
      required: false
      schema:
        description: >
          Report format:
  
  
          * `FILE` — the spreadsheet file
          (XLSX).
  
          * `CSV` — A ZIP archive with CSV files for
          each report sheet.
  
          * `JSON` — A ZIP archive with JSON files
          for each report sheet.
        type: string
        enum:
          - FILE
          - CSV
          - JSON
        default: FILE
  headers: []
  body: |-
    {
      "businessId": 1,
      "dateFrom": "2025-08-22",
      "dateTo": "2025-09-22",
      "categoryIds": [
        0
      ],
      "offerIds": [
        "example"
      ]
    }
  schema:
    description: |
      The data required to generate the report.
    type: object
    required:
      - businessId
      - dateFrom
      - dateTo
    properties:
      businessId:
        description: "Cabinet ID.  {% if audience == \"partner\" %} To find out, use the request [GET\_v2/campaigns](../../reference/campaigns/getCampaigns.md).\n\nℹ️ [What is a cabinet and a store on the Market?](https://yandex.ru/support/marketplace/account/introduction.html)\n\n:::no-translate\n{% endif %}\n:::\n\n"
        type: integer
        format: int64
        minimum: 1
      dateFrom:
        type: string
        format: date
        description: |
          The beginning of the period, inclusive.
  
          Date format: `YYYY-MM-DD`.
        example: '2025-08-22'
      dateTo:
        type: string
        format: date
        description: |
          End of the period, inclusive.
  
          Date format: `YYYY-MM-DD`.
        example: '2025-09-22'
      categoryIds:
        description: Category IDs.
        type: array
        uniqueItems: true
        minItems: 1
        maxItems: 1000
        nullable: true
        items:
          type: integer
          format: int32
          minimum: 0
          exclusiveMinimum: true
      offerIds:
        description: Product IDs.
        type: array
        uniqueItems: true
        minItems: 1
        maxItems: 1000
        nullable: true
        items:
          description: "Your SKU —\_the product ID in your system.\n\nUsage rules SKU:\n\n* For each product SKU there must be one.\n\n* Already set SKU it cannot be released and reused for another product. Each product should receive a new identifier that has never been used in your catalog before.\n\nSKU The product can be changed in the seller's account on the Market. Read about how to do this. [in the Help of the Market for sellers](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku).\n\n\n:::no-translate\n{% note warning %}\n:::\n\n\nSpaces at the beginning and end of the value are automatically deleted. For example, `\"  SKU123  \"` and `\"SKU123\"` they will be treated as identical values.\n\n\n:::no-translate\n{% endnote %}\n:::\n\n\n[What is SKU and how to assign it](https://yandex.ru/support/marketplace/assortment/add/index.html#fields)\n"
          type: string
          pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$
          x-transform: trim
          minLength: 1
          maxLength: 255
  bodyType: application/json
  method: post
  security:
    - type: apiKey
      name: 'Api-Key'
      in: header
    - type: oauth2
      x-inline: true
      flows:
        implicit:
          authorizationUrl: https://oauth.yandex.ru/authorize
          scopes:
            market:partner-api: API Яндекс.Маркета / Поиска по товарам для партнеров
  path: v2/reports/sales-geography/generate
  host: https://api.partner.market.yandex.ru
  
  ```
        

{% endlist %}


</div>
<!-- endsource: en/api/reports/generateSalesGeographyReport.md -->


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