# Overview

The Bulk API is designed for processing multiple Amazon operations in a single request. Whether you need to perform a search, fetch product details, or retrieve offers across different regions, the Bulk API allows you to submit batch jobs with various parameters in a scalable and asynchronous manner.

This workflow is ideal for:

* Running **multi-product or multi-operation tasks** in a single API call
* Automating large-scale operations such as **daily data collection, analytics, or product monitoring**
* **Reducing latency** and minimizing API overhead for heavy workloads

{% hint style="info" %}

#### API Authentication

To use Easyparser features, you need a private **API key** to authenticate your requests.

You can quickly find your key under the **Account > Plan** section in your [Easyparser Dashboard](https://app.easyparser.com/account/plan). New accounts instantly receive 100 free credits upon signing up.

*If you need a step-by-step visual guide on how to locate and copy your token, please follow our* [*Getting Started Guide.*](/easyparser-documentation/getting-started.md)
{% endhint %}

### High-Level Flow

{% stepper %}
{% step %}
**Create a Bulk Job**

You send a JSON request containing your operations (e.g., `SEARCH`, `DETAIL`, `OFFER`) along with parameters like marketplace domain and product URLs/ASINs. You must also provide a `callback_url` to receive the results.
{% endstep %}

{% step %}
**Job is Processed Asynchronously**

Once accepted, each input line generates a unique result ID. These IDs are returned in the response. The system processes the data in the background.
{% endstep %}

{% step %}
**Webhook Notification**

When processing is complete, Easyparser sends a webhook POST request to your `callback_url`, including the result IDs.
{% endstep %}

{% step %}
**Fetch Final Results**

Using the returned IDs, you can query the **Data Service API** to retrieve detailed structured data (in JSON or raw format) for each processed item.
{% endstep %}
{% endstepper %}

### &#x20;Key Concepts

* **callback\_url:** Your system endpoint that will receive a webhook call after processing.
* **result ID:** A unique identifier for each processed item. Use it to fetch results from the Data Service.
* **Data Service API:** The final source to access structured Amazon data using the returned IDs.

### Example Flow

{% stepper %}
{% step %}
`POST https://bulk.easyparser.com/v1/bulk`  with:

{% code overflow="wrap" %}

```json
{
  "platform": "AMZ",
  "operation": "SEARCH",
  "domain": ".ca",
  "payload": {
    "urls": [
    "https://www.amazon.ca/s?k=mouse", "https://www.amazon.ca/s?k=table+tennis"
    ]
  },
  "callback_url": "https://yourdomain.com/webhook"
}

```

{% endcode %}
{% endstep %}

{% step %}
✅ Response contains result `IDs`:

{% code overflow="wrap" %}

```json
{
  "data": {
    "accepted": [
      {
        "results": [
          { "link": "...", "id": "250f..." },
          { "link": "...", "id": "cd4b..." }
        ]
      }
    ]
  }
}
```

{% endcode %}
{% endstep %}

{% step %}
&#x20;Webhook hits your `callback_url` once the job is complete.

{% endstep %}

{% step %}
&#x20;Use each `id` to get results via:
{% endstep %}
{% endstepper %}

{% hint style="success" %}

> This structure allows you to fully decouple job creation and result consumption, making it perfect for asynchronous, large-scale data operations.

> For full details on the request/response format, see Bulk Service and Data Service.
> {% endhint %}

### Fetching Results

You can retrieve each result using the `id` via the Data Service:

{% code overflow="wrap" %}

```bash
curl --location 'https://data.easyparser.com/v1/queries/{id}/results' \
--header 'api-key: YOUR_API_KEY'
```

{% endcode %}

### Notes

* Each `id` corresponds to a single unit of work.
* Only supported operations and platforms will be accepted.
* Ensure your `callback_url` is reachable and returns HTTP `200 OK` for successful delivery.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://easyparser.gitbook.io/easyparser-documentation/bulk-integration/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
