---
title: Feed API
description: "The **Sell Feed API** lets sellers upload and download feed files and reports, and create schedules. Both upload and download feed files are processed asynchronously by eBay. The status of all upload and download tasks are tracked with a unique 'task ID'. Each report can be customized with date ranges and other filter criteria."
api_version: 1.0
api_name: feed_api
api_type: REST
api_group: sell/feed_api
source_url:
  html: https://developer.ebay.com/develop/api/sell/feed_api
  md: https://developer.ebay.com/develop/api/sell/feed_api.md
---

# Feed API API

The **Sell Feed API** lets sellers upload and download feed files and reports, and create schedules. Both upload and download feed files are processed asynchronously by eBay. The status of all upload and download tasks are tracked with a unique 'task ID'. Each report can be customized with date ranges and other filter criteria.

## API Methods

The following API methods are available:

### createOrderTask

#### POST /order_task
**Description:** This method creates an order download task with filter criteria for the order report. When using this method, specify the **feedType**, **schemaVersion**, and **filterCriteria** for the report. The method returns the **location** response header containing the **getOrderTask** call URI to retrieve the order task you just created. The URL includes the eBay-assigned task ID, which you can use to reference the order task.  
  
To retrieve the status of the task, use the **getOrderTask** method to retrieve a single task ID or the **getOrderTasks** method to retrieve multiple order task IDs.

**Note:** The scope depends on the feed type. An error message results when an unsupported scope or feed type is specified.

The following contains this method's authorization scope and its corresponding feed type:

*   https://api.ebay.com/oauth/api\_scope/sell.fulfillment: LMS\_ORDER\_REPORT

For details about how this method is used, see [General feed types](/api-docs/sell/static/feed/general-feed-tasks.html) in the Selling Integration Guide.

**Note:** At this time, the **createOrderTask** method only supports order creation date filters and not modified order date filters. Do not include the **modifiedDateRange** filter in your request payload.
**Parameters:**
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **application/json**.

### getOrderTask

#### GET /order_task/{task_id}
**Description:** This method retrieves the task details and status of the specified task. The input is **task\_id**.

For details about how this method is used, see [Working with Order Feeds](/api-docs/sell/static/orders/generating-and-retrieving-order-reports.html) in the Selling Integration Guide.
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the order task being retrieved.  
  
Use the [getOrderTasks](/develop/api/sell/feed_api#sell-feed_api-inventory_task-getinventorytasks) method to retrieve order task IDs.

### getOrderTasks

#### GET /order_task
**Description:** This method returns the details and status for an array of order tasks. Rather than using a request payload, it does this through specified input in query parameters, such as **feed\_type** or **schedule\_id**. Specifying both **feed\_type** and **schedule\_id** results in an error. Since schedules are based on feed types, you can specify a schedule (**schedule\_id**) that returns the needed **feed\_type**.  
  
If specifying the **feed\_type**, limit which order tasks are returned by specifying filters such as the creation date range or period of time using **look\_back\_days**.  
  
If specifying a **schedule\_id**, the schedule template (that the **schedule\_id** is based on) determines which order tasks are returned (see **schedule\_id** for additional information). Each **schedule\_id** applies to one **feed\_type**.
**Parameters:**
- **date_range** (string)
  - The order tasks creation date range. This range is used to filter the results. The filtered results include only tasks with a creation date that is equal to this date or is within the specified range. Only orders less than 90 days old can be retrieved. Do not use with the **look\_back\_days** parameter.  
  
**Format:** UTC  
  
**For example:**  
  
Tasks within a range  
`yyyy-MM-ddThh:mm:ss.SSSZ..yyyy-MM-ddThh:mm:ss.SSSZ`  
  
Tasks created on September 8, 2019  
`2019-09-08T00:00:00.000Z..2019-09-09T00:00:00.000Z`
- **feed_type** (string)
  - The feed type associated with the order tasks being retrieved. The only presently supported value is `LMS_ORDER_REPORT`  
  
See [Report download feed types](/api-docs/sell/static/feed/lms-feeds-quick-reference.html#merchant-data-reports-download-feed-types) for more information.  
  
**Note:** Do not use with the **schedule\_id** parameter. Doing so will result in an error. Since schedules are based on feed types, you can specify a schedule (**schedule\_id**) that returns the needed **feed\_type**. This parameter is required if the **schedule\_id** parameter is not specified.
- **limit** (string)
  - The maximum number of order tasks that can be returned on each page of the paginated response. Use this parameter in conjunction with the **offset** parameter to control the pagination of the output.

**Note:** This feature employs a zero-based list, where the first item in the list has an offset of `0`.

For example, if **offset** is set to 10 and **limit** is set to 10, the call retrieves order tasks 11 thru 20 from the result set.

If this parameter is omitted, the default value is used.

**Default:** 10

**Maximum:** 500
- **look_back_days** (string)
  - The number of previous days in which to search for tasks. Do not use with the **date\_range** parameter. If both **date\_range** and **look\_back\_days** are omitted, this parameter's default value is used.  
  
**Default:** 7  
  
**Range:** 1-90 (inclusive)
- **offset** (string)
  - The number of order tasks to skip in the result set before returning the first order in the paginated response.

Combine **offset** with the **limit** query parameter to control the items returned in the response. For example, if you supply an **offset** of `0` and a **limit** of `10`, the first page of the response contains the first 10 items from the complete list of items retrieved by the call. If **offset** is `10` and **limit** is `20`, the first page of the response contains items 11-30 from the complete result set. If this query parameter is not set, the default value is used and the first page of records is returned.  
  
**Default:** 0
- **schedule_id** (string)
  - The schedule ID associated with the order tasks being retrieved. A schedule periodically generates a report, and these schedules can be created with the [createSchedule](/develop/api/sell/feed_api#method-schedule-createSchedule) method.  
  
**Note:** Do not use with the **feed\_type** parameter. Doing so will result in an error. Since schedules are based on feed types, you can specify a schedule (**schedule\_id**) that returns the needed **feed\_type**. This parameter is required if the **feed\_type** parameter is not specified.  
Use the [getSchedules](/develop/api/sell/feed_api#method-schedule-getSchedules) method to retrieve schedule IDs.

### createInventoryTask

#### POST /inventory_task
**Description:** This method creates an inventory-related download task for a specified feed type with optional filter criteria. When using this method, specify the **feedType**.  
  
This method returns the location response header containing the **getInventoryTask** call URI to retrieve the inventory task you just created. The URL includes the eBay-assigned task ID, which you can use to reference the inventory task.  
  
To retrieve the status of the task, use the **getInventoryTask** method to retrieve a single task ID or the **getInventoryTasks** method to retrieve multiple task IDs.

**Note:** The scope depends on the feed type. An error message results when an unsupported scope or feed type is specified.

Presently, this method supports Active Inventory Report. The **ActiveInventoryReport** returns a report that contains price and quantity information for all of the active listings for a specific seller. A seller can use this information to maintain their inventory on eBay.
**Parameters:**
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **application/json**.

### getInventoryTask

#### GET /inventory_task/{task_id}
**Description:** This method retrieves the task details and status of the specified inventory-related task. The input is **task\_id**.
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the inventory task being retrieved.  
  
Use the **getInventoryTasks** method to retrieve inventory task IDs.

### getInventoryTasks

#### GET /inventory_task
**Description:** This method searches for multiple tasks of a specific feed type and includes date filters and pagination.
**Parameters:**
- **feed_type** (string)
  - The feed type associated with the inventory tasks being retrieved. Presently, only one feed type is available:  

*   `LMS_ACTIVE_INVENTORY_REPORT`

See [Report value feed types](/api-docs/sell/static/feed/lms-feeds-quick-reference.html#merchant-data-reports-download-feed-types) for more information.
- **schedule_id** (string)
  - **Note:** Schedule functionality for ActiveInventoryReport is currently unavailable, so this field is not usable.
- **look_back_days** (string)
  - The number of previous days in which to search for tasks. Do not use with the `date_range` parameter. If both `date_range` and `look_back_days` are omitted, this parameter's default value is used.  
  
**Default:** 7  
  
**Range:** 1-90 (inclusive)
- **date_range** (string)
  - Specifies the range of task creation dates used to filter the results. The results are filtered to include only tasks with a creation date that is equal to this date or is within specified range.

**Note:** Maximum date range window size is 90 days.

  
**Valid Format (UTC):** `yyyy-MM-ddThh:mm:ss.SSSZ..yyyy-MM-ddThh:mm:ss.SSSZ`  
  
For example: Tasks created on March 31, 2021  
`2021-03-31T00:00:00.000Z..2021-03-31T00:00:00.000Z`
- **limit** (string)
  - The maximum number of tasks that can be returned on each page of the paginated response. Use this parameter in conjunction with the **offset** parameter to control the pagination of the output.

**Note:** This feature employs a zero-based list, where the first item in the list has an offset of `0`.

For example, if **offset** is set to 10 and **limit** is set to 10, the call retrieves tasks 11 thru 20 from the result set.

If this parameter is omitted, the default value is used.  
  
**Default:** 10  
  
**Maximum:** 500
- **offset** (string)
  - The number of tasks to skip in the result set before returning the first task in the paginated response.

Combine **offset** with the **limit** query parameter to control the items returned in the response. For example, if you supply an **offset** of `0` and a **limit** of `10`, the first page of the response contains the first 10 items from the complete list of items retrieved by the call. If **offset** is `10` and **limit** is `20`, the first page of the response contains items 11-30 from the complete result set. If this query parameter is not set, the default value is used and the first page of records is returned.  
  
**Default:** 0

### createSchedule

#### POST /schedule
**Description:** This method creates a schedule, which is a subscription to the specified schedule template. A schedule periodically generates a report for the **feedType** specified by the template. Specify the same **feedType** as the **feedType** of the associated schedule template. When creating the schedule, if available from the template, you can specify a preferred trigger hour, day of the week, or day of the month. These and other fields are conditionally available as specified by the template.

**Note:** Make sure to include all fields required by the schedule template (**scheduleTemplateId**). Call the **getScheduleTemplate** method (or the **getScheduleTemplates** method), to find out which fields are required or optional. If a field is optional and a default value is provided by the template, the default value will be used if omitted from the payload.

A successful call returns the location response header containing the **getSchedule** call URI to retrieve the schedule you just created. The URL includes the eBay-assigned schedule ID, which you can use to reference the schedule task.  
  
To retrieve the details of the create schedule task, use the **getSchedule** method for a single schedule ID or the **getSchedules** method to retrieve all schedule details for the specified **feed\_type**. The number of schedules for each feedType is limited. Error code 160031 is returned when you have reached this maximum.

**Note:** Except for schedules with a HALF-HOUR frequency, all schedules will ideally run at the start of each hour ('00' minutes). Actual start time may vary due to load and other factors.
**Parameters:**
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **application/json**.

### deleteSchedule

#### DELETE /schedule/{schedule_id}
**Description:** This method deletes an existing schedule. Specify the schedule to delete using the **schedule\_id** path parameter.
**Parameters:**
- **schedule_id** (string) *required*
  - This path parameter is the unique identifier of the schedule being deleted.  
  
Use the [getSchedules](/develop/api/sell/feed_api#sell-feed_api-schedule-getschedules) method to retrieve schedule IDs.

### getLatestResultFile

#### GET /schedule/{schedule_id}/download_result_file
**Description:** This method downloads the latest Order Report generated by the schedule. The response of this call is a compressed or uncompressed CSV, XML, or JSON file, with the applicable file extension (for example: csv.gz). Specify the **schedule\_id** path parameter to download its last generated file.
**Parameters:**
- **schedule_id** (string) *required*
  - This path parameter is the unique identifier of the schedule for which to retrieve the latest Order Report.  
  
Use the [getSchedules](/develop/api/sell/feed_api#sell-feed_api-schedule-getschedules) method to retrieve schedule IDs.

### getSchedule

#### GET /schedule/{schedule_id}
**Description:** This method retrieves schedule details and status of the specified schedule. Specify the schedule to retrieve using the **schedule\_id**. Use the **getSchedules** method to find a schedule if you do not know the **schedule\_id**.
**Parameters:**
- **schedule_id** (string) *required*
  - This path parameter is the unique identifier of the schedule for which to retrieve details.  
  
Use the [getSchedules](/develop/api/sell/feed_api#sell-feed_api-schedule-getschedules) method to retrieve schedule IDs.

### getSchedules

#### GET /schedule
**Description:** This method retrieves an array containing the details and status of all schedules based on the specified **feed\_type**. Use this method to find a schedule if you do not know the **schedule\_id**.
**Parameters:**
- **feed_type** (string) *required*
  - The feed type associated with the schedules being retrieved.  
  
**Note:** Schedules are currently only available for `LMS_ORDER_REPORT`.
- **limit** (string)
  - The maximum number of schedules that can be returned on each page of the paginated response. Use this parameter in conjunction with the **offset** parameter to control the pagination of the output.

**Note:** This feature employs a zero-based list, where the first item in the list has an offset of `0`.

For example, if **offset** is set to 10 and **limit** is set to 10, the call retrieves schedules 11 thru 20 from the result set.

If this parameter is omitted, the default value is used.  
  
**Default:** 10  
  
**Maximum:** 500
- **offset** (string)
  - The number of schedules to skip in the result set before returning the first schedule in the paginated response.

Combine **offset** with the **limit** query parameter to control the items returned in the response. For example, if you supply an **offset** of `0` and a **limit** of `10`, the first page of the response contains the first 10 items from the complete list of items retrieved by the call. If **offset** is `10` and **limit** is `20`, the first page of the response contains items 11-30 from the complete result set. If this query parameter is not set, the default value is used and the first page of records is returned.  
  
**Default:** 0

### getScheduleTemplate

#### GET /schedule_template/{schedule_template_id}
**Description:** This method retrieves the details of the specified template. Specify the template to retrieve using the **schedule\_template\_id** path parameter. Use the **getScheduleTemplates** method to find a schedule template if you do not know the **schedule\_template\_id**.
**Parameters:**
- **schedule_template_id** (string) *required*
  - This path parameter is the unique identifier of the schedule template being retrieved.  
  
Use the [getScheduleTemplates](/develop/api/sell/feed_api#sell-feed_api-schedule-getscheduletemplates) method to retrieve schedule template IDs.  
  
**Note:** Template schedules are currently only available for `LMS_ORDER_REPORT`.

### getScheduleTemplates

#### GET /schedule_template
**Description:** This method retrieves an array containing the details and status of all schedule templates based on the specified **feed\_type**. Use this method to find a schedule template if you do not know the **schedule\_template\_id**.
**Parameters:**
- **feed_type** (string) *required*
  - The feed type of the schedule templates to retrieve.  
  
**Note:** Schedules are currently only available for `LMS_ORDER_REPORT`.
- **limit** (string)
  - The maximum number of schedule templates that can be returned on each page of the paginated response. Use this parameter in conjunction with the **offset** parameter to control the pagination of the output.

**Note:** This feature employs a zero-based list, where the first item in the list has an offset of `0`.

For example, if **offset** is set to 10 and **limit** is set to 10, the call retrieves schedule templates 11 thru 20 from the result set.

If this parameter is omitted, the default value is used.  
  
**Default:** 10  
  
**Maximum:** 500
- **offset** (string)
  - The number of schedule templates to skip in the result set before returning the first template in the paginated response.

Combine **offset** with the **limit** query parameter to control the items returned in the response. For example, if you supply an **offset** of `0` and a **limit** of `10`, the first page of the response contains the first 10 items from the complete list of items retrieved by the call. If **offset** is `10` and **limit** is `20`, the first page of the response contains items 11-30 from the complete result set. If this query parameter is not set, the default value is used and the first page of records is returned.  
  
**Default:** 0

### updateSchedule

#### PUT /schedule/{schedule_id}
**Description:** This method updates an existing schedule. Specify the schedule to update using the **schedule\_id** path parameter. If the schedule template has changed after the schedule was created or updated, the input will be validated using the changed template.

**Note:** Make sure to include all fields required by the schedule template (**scheduleTemplateId**). Call the **getScheduleTemplate** method (or the **getScheduleTemplates** method), to find out which fields are required or optional. If you do not know the **scheduleTemplateId**, call the **getSchedule** method to find out.
**Parameters:**
- **schedule_id** (string) *required*
  - This path parameter is the unique identifier of the schedule being updated.  
  
Use the [getSchedules](/develop/api/sell/feed_api#sell-feed_api-schedule-getschedules) method to retrieve schedule IDs.
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **application/json**.

### createTask

#### POST /task
**Description:** This method creates an upload task or a download task without filter criteria. When using this method, specify the **feedType** and the feed file **schemaVersion**. The feed type specified sets the task as a download or an upload task.

For details about the upload and download flows, see [Working with Order Feeds](/api-docs/sell/static/orders/generating-and-retrieving-order-reports.html) in the Selling Integration Guide.

**Note:** The scope depends on the feed type. An error message results when an unsupported scope or feed type is specified.

The following list contains this method's authorization scopes and their corresponding feed types:

*   https://api.ebay.com/oauth/api\_scope/sell.inventory: See [LMS FeedTypes](/api-docs/sell/static/feed/lms-feeds-quick-reference.html#Availabl)
*   https://api.ebay.com/oauth/api\_scope/sell.fulfillment: LMS\_ORDER\_ACK (specify for upload tasks). Also see [LMS FeedTypes](/api-docs/sell/static/feed/lms-feeds-quick-reference.html#Availabl)
*   https://api.ebay.com/oauth/api\_scope/sell.marketing: None\*
*   https://api.ebay.com/oauth/api\_scope/commerce.catalog.readonly: None\*

\* Reserved for future release
**Parameters:**
- **X-EBAY-C-MARKETPLACE-ID** (string) *required*
  - The ID of the eBay marketplace where the item is hosted.  
  
For example:  
`X-EBAY-C-MARKETPLACE-ID:EBAY_US`  
  
This identifies the eBay marketplace that applies to this task. See **MarketplaceIdEnum** for supported values.  
  
**Note:** When listing the items in the feed file on the French Canada and French Belgium marketplaces, also set the **Accept-Language** header as needed.
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **application/json**.
- **Accept-Language** (string)
  - The Accept-Language header is required for listing items in the French Canada and French Belgium marketplaces. Set the following headers to list items on these marketplaces:  

*   **French Canada**: Set the **X-EBAY-C-MARKETPLACE-ID** header value to `EBAY_CA` and include the **Accept-Language** header with a value of `fr-CA`.
*   **French Belgium**: Set the **X-EBAY-C-MARKETPLACE-ID** header value to `EBAY_BE` and include the **Accept-Language** header with a value of `fr-BE`.

### getInputFile

#### GET /task/{task_id}/download_input_file
**Description:** This method downloads a file previously uploaded using **uploadFile**. Specify the **task\_id** from the **uploadFile** call.

**Note:** With respect to LMS, this method applies to all feed types except `LMS_ORDER_REPORT` and `LMS_ACTIVE_INVENTORY_REPORT`. See [LMS API Feeds](/api-docs/sell/static/feed/lms-feeds.html) in the Selling Integration Guide.
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the task associated with the input file to be downloaded.  
  
Use the [getTasks](/develop/api/sell/feed_api#sell-feed_api-task-gettasks) method to retrieve task IDs.

### getResultFile

#### GET /task/{task_id}/download_result_file
**Description:** This method retrieves the generated file that is associated with the specified task ID. The response of this call is a compressed or uncompressed CSV, XML, or JSON file, with the applicable file extension (for example: csv.gz).

For details about how this method is used, see [Working with Order Feeds](/api-docs/sell/static/orders/generating-and-retrieving-order-reports.html) in the Selling Integration Guide.

**Note:** The status of the task to retrieve must be in the `COMPLETED` or `COMPLETED_WITH_ERROR` state before this method can retrieve the file. You can use the **getTask** or **getTasks** method to retrieve the status of the task.
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the task associated with the file to be downloaded.  
  
Use the [getTasks](/develop/api/sell/feed_api#sell-feed_api-task-gettasks) method to retrieve task IDs.

### getTask

#### GET /task/{task_id}
**Description:** This method retrieves the details and status of the specified task. The input is **task\_id**.  
  
For details of how this method is used, see [Working with Order Feeds](/api-docs/sell/static/orders/generating-and-retrieving-order-reports.html) in the Selling Integration Guide.
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the task being retrieved.  
  
Use the [getTasks](/develop/api/sell/feed_api#sell-feed_api-task-gettasks) method to retrieve task IDs.

### getTasks

#### GET /task
**Description:** This method returns the details and status for an array of tasks based on a specified **feed\_type** or **schedule\_id**. Specifying both **feed\_type** and **schedule\_id** results in an error. Since schedules are based on feed types, you can specify a schedule (**schedule\_id**) that returns the needed **feed\_type**.  
  
If specifying the **feed\_type**, limit which tasks are returned by specifying filters, such as the creation date range or period of time using **look\_back\_days**. Also, by specifying the **feed\_type**, both on-demand and scheduled reports are returned.  
  
If specifying a **schedule\_id**, the schedule template (that the schedule ID is based on) determines which tasks are returned (see **schedule\_id** for additional information). Each **scheduledId** applies to one **feed\_type**.
**Parameters:**
- **date_range** (string)
  - Specifies the range of task creation dates used to filter the results. The results are filtered to include only tasks with a creation date that is equal to this date or is within specified range. Only tasks that are less than 90 days can be retrieved.

**Note:** Maximum date range window size is 90 days.

  
**Valid Format (UTC):**`yyyy-MM-ddThh:mm:ss.SSSZ..yyyy-MM-ddThh:mm:ss.SSSZ`  
  
For example: Tasks created on September 8, 2019  
`2019-09-08T00:00:00.000Z..2019-09-09T00:00:00.000Z`
- **feed_type** (string)
  - The feed type associated with the tasks to be returned. Only use a **feedType** that is available for your API:

*   Order Feeds: `LMS_ORDER_ACK, LMS_ORDER_REPORT`
*   Inventory Upload Feed Types: See [Available FeedTypes](/api-docs/sell/static/feed/lms-feeds-quick-reference.html#Availabl)

Do not use with the **schedule\_id** parameter. Since schedules are based on feed types, you can specify a schedule (**schedule\_id**) that returns the needed **feed\_type**.
- **limit** (string)
  - The maximum number of tasks that can be returned on each page of the paginated response. Use this parameter in conjunction with the **offset** parameter to control the pagination of the output.

**Note:** This feature employs a zero-based list, where the first item in the list has an offset of `0`.

For example, if **offset** is set to 10 and **limit** is set to 10, the call retrieves tasks 11 thru 20 from the result set.

If this parameter is omitted, the default value is used.  
  
**Default:** 10  
  
**Maximum:** 500
- **look_back_days** (string)
  - The number of previous days in which to search for tasks. Do not use with the `date_range` parameter. If both `date_range` and `look_back_days` are omitted, this parameter's default value is used.  
  
**Default:** 7  
  
**Range:** 1-90 (inclusive)
- **offset** (string)
  - The number of tasks to skip in the result set before returning the first task in the paginated response.

Combine **offset** with the **limit** query parameter to control the items returned in the response. For example, if you supply an **offset** of `0` and a **limit** of `10`, the first page of the response contains the first 10 items from the complete list of items retrieved by the call. If **offset** is `10` and **limit** is `20`, the first page of the response contains items 11-30 from the complete result set. If this query parameter is not set, the default value is used and the first page of records is returned.  
  
**Default:** 0
- **schedule_id** (string)
  - The unique identifier associated with the tasks being returned. A schedule periodically generates a report for the feed type specified by the schedule template.  
  
**Note:** Schedules are currently only available for `LMS_ORDER_REPORT`.  
Do not use with the **feed\_type** parameter.

### uploadFile

#### POST /task/{task_id}/upload_file
**Description:** This method associates the specified file with the specified task ID and uploads the input file. After the file has been uploaded, the processing of the file begins.  
  
Reports often take time to generate and it's common for this method to return an HTTP status of 202, which indicates the report is being generated. Use the **getTask** with the task ID or **getTasks** to determine the status of a report.  
  
The status flow is `QUEUED` > `IN_PROCESS` > `COMPLETED` or `COMPLETED_WITH_ERROR`. When the status is `COMPLETED` or `COMPLETED_WITH_ERROR`, this indicates the file has been processed and the order report can be downloaded. If there are errors, they will be indicated in the report file.  
  
For details of how this method is used in the upload flow, see [Working with Order Feeds](/api-docs/sell/static/orders/generating-and-retrieving-order-reports.html) in the Selling Integration Guide.  
  
This call does not have a JSON Request payload but uploads the file as form-data. For example:  

 fileName: "AddFixedPriceItem\_Macbook.xml"   
 name: "file"   
 type: "form-data"   
 file: @"/C:/Users/.../AddFixedPriceItem\_Macbook.7z"

See [Samples](/api-docs/sell/feed/resources/task/methods/uploadFile#h2-samples) for information.

**Note:** This method applies to all [Seller Hub feed types](/api-docs/sell/static/feed/fx-feeds-quick-reference.html#availabl), and to all [LMS feed types](/api-docs/sell/static/feed/lms-feeds-quick-reference.html#Availabl) except `LMS_ORDER_REPORT` and `LMS_ACTIVE_INVENTORY_REPORT`.

**Note:** You must use a **Content-Type** header with its value set to "**multipart/form-data**". See [Samples](/api-docs/sell/feed/resources/task/methods/uploadFile#h2-samples) for information.

**Note:** For LMS feed types, upload a regular XML file or an XML file in zipped format (both formats are allowed).
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the task associated with the file that will be uploaded.  
  
Use the [getTasks](/develop/api/sell/feed_api#sell-feed_api-task-gettasks) method to retrieve task IDs.
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **multipart/form-data**.

### createCustomerServiceMetricTask

#### POST /customer_service_metric_task
**Description:** Use this method to create a customer service metrics download task with filter criteria for the customer service metrics report. When using this method, specify the **feedType** and **filterCriteria** including both **evaluationMarketplaceId** and **customerServiceMetricType** for the report. The method returns the location response header containing the call URI to use with **getCustomerServiceMetricTask** to retrieve status and details on the task.

Only CURRENT Customer Service Metrics reports can be generated with the Sell Feed API. PROJECTED reports are not supported at this time. See the [getCustomerServiceMetric](/api-docs/sell/analytics/resources/customer_service_metric/methods/getCustomerServiceMetric) method document in the Analytics API for more information about these two types of reports.

**Note:** Before calling this API, retrieve the summary of the seller's performance and rating for the customer service metric by calling **getCustomerServiceMetric** (part of the [Analytics API](/develop/api/sell/analytics_api)). You can then populate the create task request fields with the values from the response. This technique eliminates failed tasks that request a report for a **customerServiceMetricType** and **evaluationMarketplaceId** that are without evaluation.
**Parameters:**
- **Accept-Language** (string) *required*
  - Use this header to specify the natural language in which the authenticated user desires the response. For example, `en-US` for English or `de-DE` for German.
- **Content-Type** (string) *required*
  - This header indicates the format of the request body provided by the client. Its value should be set to **application/json**.

### getCustomerServiceMetricTask

#### GET /customer_service_metric_task/{task_id}
**Description:** Use this method to retrieve customer service metric task details for the specified task. The input is **task\_id**.
**Parameters:**
- **task_id** (string) *required*
  - This path parameter is the unique identifier of the customer service metric task being retrieved.  
  
Use the [getCustomerServiceMetricTasks](/develop/api/sell/feed_api#sell-feed_api-customer_service_metric_task-getcustomerservicemetrictasks) method to retrieve task IDs.

### getCustomerServiceMetricTasks

#### GET /customer_service_metric_task
**Description:** Use this method to return an array of customer service metric tasks. You can limit the tasks returned by specifying a date range.

**Note:** You can pass in either the `look_back_days` or `date_range`, but not both.
**Parameters:**
- **date_range** (string)
  - The task creation date range. The results are filtered to include only tasks with a creation date that is equal to the dates specified or is within the specified range. Do not use with the `look_back_days` parameter.

**Format:** UTC

For example, tasks within a range:

`yyyy-MM-ddThh:mm:ss.SSSZ..yyyy-MM-ddThh:mm:ss.SSSZ`

Tasks created on March 8, 2020

`2020-03-08T00:00.00.000Z..2020-03-09T00:00:00.000Z`

**Maximum:** 90 days
- **feed_type** (string)
  - The feed type associated with the tasks being retrieved. The only presently supported value is `CUSTOMER_SERVICE_METRICS_REPORT`.
- **limit** (string)
  - The number of customer service metric tasks to return per page of the result set. Use this parameter in conjunction with the offset parameter to control the pagination of the output.

For example, if **offset** is set to 10 and **limit** is set to 10, the call retrieves tasks 11 thru 20 from the result set.

If this parameter is omitted, the default value is used.

**Note:**This feature employs a zero-based list, where the first item in the list has an offset of `0`.

**Default:** 10

**Maximum:** 500
- **look_back_days** (string)
  - The number of previous days in which to search for tasks. Do not use with the `date_range` parameter. If both `date_range` and `look_back_days` are omitted, this parameter's default value is used.

**Default value:** 7

**Range:** 1-90 (inclusive)
- **offset** (string)
  - The number of customer service metric tasks to skip in the result set before returning the first task in the paginated response.

Combine **offset** with the **limit** query parameter to control the items returned in the response. For example, if you supply an **offset** of `0` and a **limit** of `10`, the first page of the response contains the first 10 items from the complete list of items retrieved by the call. If **offset** is `10` and **limit** is `20`, the first page of the response contains items 11-30 from the complete result set.  
  
**Default:** 0

## Error Codes

The following error codes may be returned by this API:

### REQUEST Errors

#### 160017 - API_FEED
**Description:** The 'feedType' is missing or invalid.

#### 160018 - API_FEED
**Description:** The 'schemaVersion' is invalid.

#### 160019 - API_FEED
**Description:** The 'filterCriteria' is invalid. {additionalInfo}

#### 160027 - API_FEED
**Description:** The X-EBAY-C-MARKETPLACE-ID header is missing or invalid.

#### 160030 - API_FEED
**Description:** This resource is not applicable for the feed type {feedTypeValue}. For more information, see the documentation for this API.

#### 160002 - API_FEED
**Description:** The authentication scope {scope} is incorrect for 'feed\_type' {feedType}. Refer to documentation for details about the scopes.

#### 160022 - API_FEED
**Description:** You are not allowed to access this resource. Contact eBay Developer Technical Support for assistance.

#### 160003 - API_FEED
**Description:** Task {taskID} does not exist.

#### 160004 - API_FEED
**Description:** You must submit either a 'feed\_type' or 'schedule\_id'.

#### 160005 - API_FEED
**Description:** Both 'feed\_type' and 'schedule\_id' were provided. Please remove one of them.

#### 160006 - API_FEED
**Description:** The 'feed\_type' {feedTypeValue} is invalid.

#### 160007 - API_FEED
**Description:** The 'schedule\_id' {scheduleID} is invalid.

#### 160008 - API_FEED
**Description:** Both 'look\_back\_days' and 'date\_range' were provided. Please remove one of them.

#### 160009 - API_FEED
**Description:** The format of the 'date\_range' is invalid. The format for a date range is yyyy-MM-ddThh:mm:ss.SSSZ..yyyy-MM-ddThh:mm:ss.SSSZ.

#### 160010 - API_FEED
**Description:** The 'date\_range' must be less than or equal to 90 days.

#### 160011 - API_FEED
**Description:** The 'look\_back\_days' value must be greater than zero and less than or equal to 90.

#### 160012 - API_FEED
**Description:** The 'limit' value must be greater than zero and less than or equal to 500.

#### 160013 - API_FEED
**Description:** The 'offset' value cannot be less than zero.

#### 160029 - API_FEED
**Description:** The 'offset' value must be a multiple of the 'limit' value.

#### 160032 - API_FEED
**Description:** The 'scheduleTemplateId' is invalid. Call the getScheduleTemplates method to get the available schedule templates.

#### 160033 - API_FEED
**Description:** The 'feedType' is not associated with the 'scheduleTemplateId'. Please provide a 'feedType' that matches the 'scheduleTemplateId'. Call the getScheduleTemplates method to get the available schedule templates.

#### 160034 - API_FEED
**Description:** The '{fieldName}' is invalid, missing, or not allowed.

#### 160036 - API_FEED
**Description:** The '{fieldName}' is in the past.

#### 160037 - API_FEED
**Description:** The 'scheduleEndDate' is before 'scheduleStartDate'.

#### 160038 - API_FEED
**Description:** The schedule id {schedule\_id} does not exist.

#### 160021 - API_FEED
**Description:** No file found for 'schedule\_id' {scheduleID}.

#### 160039 - API_FEED
**Description:** The schedule template id {schedule\_template\_id} does not exist. Please provide a valid schedule template id as contained in the documentation or by calling the getScheduleTemplates method.

#### 160014 - API_FEED
**Description:** No file found for task ID {taskID}.

#### 160015 - API_FEED
**Description:** The 'task\_id' {taskID} is a download task, which in invalid for an input file.

#### 160016 - API_FEED
**Description:** The 'date\_range' value is not valid. Ensure that the beginning of the range is before the end of the range.

#### 160020 - API_FEED
**Description:** The format of the file to be uploaded is invalid. {additionalInfo}

#### 160023 - API_FEED
**Description:** Task {taskID} cannot upload a file.

#### 160026 - API_FEED
**Description:** This task has expired and you cannot use it to upload a file. You must upload a file within an hour of creating the task.

#### 160028 - API_FEED
**Description:** The file you tried to upload is too large. Please try using a smaller file. For more information, see the documentation for this API.

#### 160100 - API_FEED
**Description:** Payload not found. Make sure your file is uploaded inside the Request Body under the key name 'file'.

#### 160024 - API_FEED
**Description:** You have reached the maximum number of feed tasks that can be queued or processed concurrently. Wait for current tasks to complete before adding tasks. For more information, see the documentation for this API.

#### 160025 - API_FEED
**Description:** You have exceeded the maximum number of feed tasks that can be created or processed in a given period (hour or day). Wait until the present period ends before adding tasks. For more information, see the documentation for this API.

#### 164500 - API_FEED
**Description:** The 'customerServiceMetricType' in 'filterCriteria' is not a valid type. Valid metric types are ITEM\_NOT\_AS\_DESCRIBED or ITEM\_NOT\_RECEIVED.

#### 164501 - API_FEED
**Description:** The 'evaluationMarketplaceId' in 'filterCriteria' is not a supported marketplace. For a complete list of the supported marketplace IDs, see the documentation.

#### 164502 - API_FEED
**Description:** The 'listingCategories' in 'filterCriteria' or some part of the 'listingCategories' is invalid. {additionalInfo}

#### 164503 - API_FEED
**Description:** The 'shippingRegions' in 'filterCriteria' or some part of the 'shippingRegions' is invalid. {additionalInfo}

#### 164504 - API_FEED
**Description:** The Accept-Language header is missing or invalid.

#### 164505 - API_FEED
**Description:** The 'filterCriteria' is missing or invalid.

#### 164506 - API_FEED
**Description:** The 'listingCategories' is not applicable to the 'customerServiceMetricType' {customerServiceMetricType} in 'filterCriteria'.

#### 164507 - API_FEED
**Description:** The 'shippingRegions' is not applicable to the 'customerServiceMetricType' {customerServiceMetricType} in 'filterCriteria'.

### BUSINESS Errors

#### 160024 - API_FEED
**Description:** You have reached the maximum number of feed tasks that can be queued or processed concurrently. Wait for current tasks to complete before adding tasks. For more information, see the documentation for this API.

#### 160025 - API_FEED
**Description:** You have exceeded the maximum number of records or tasks that can be created or processed in the period (hourly or daily). Wait until the present period ends before trying again. For more information, see the documentation for this API.

#### 160031 - API_FEED
**Description:** You have reached the maximum number of subscribed schedules for the 'feedType' {feedType}. To subscribe to another schedule, you must delete one.

#### 160035 - API_FEED
**Description:** Duplicate schedule (a matching schedule already exists). Use the getSchedules method to see the existing schedules.

#### 160040 - API_FEED
**Description:** The 'scheduleTemplateId' is inactive. You cannot create or modify a schedule with an inactive 'scheduleTemplateId'.

### APPLICATION Errors

#### 160001 - API_FEED
**Description:** There was a problem with an eBay internal system or process. Contact eBay Developer Technical Support for assistance.

## Rate Limits

See [API Call Limits](https://developer.ebay.com/develop/get-started/api-call-limits) on the eBay Developer Program.

## Resources

### Documentation

- [eBay Developer Program](https://developer.ebay.com/)
- [API Documentation](https://developer.ebay.com/develop/api/)
- [SDKs and Widgets](https://developer.ebay.com/develop/sdks-and-widgets)
- [Developer Community Forum](https://community.ebay.com/t5/Developer-Groups/ct-p/developergroup)

### Tools

- [API Explorer](https://developer.ebay.com/my/api_test_tool)
- [GraphQL Explorer](https://developer.ebay.com/my/graphql_explorer)

### Support

- [Developer Support](https://developer.ebay.com/support/)
- [API Status](https://developer.ebay.com/support/api-status)
- [Release Notes](https://developer.ebay.com/develop/api/release_notes/)

---
*Generated on 2026-07-08T04:18:19.526Z*