> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bounceban Export Bulk Results: Inputs, Cost & CLI Example

> Read, export, or manage an existing BounceBan bulk verification task. Includes inputs, outputs, costs, and Deepline CLI examples for GTM automation.

## Run in Enrichment Spreadsheet

<Info>
  Use this function as a column step in `deepline enrich`.
</Info>

```bash theme={null}
deepline enrich --input leads.csv --output leads.enriched.csv --with 'result=bounceban_export_bulk_results:{"id":"{{id}}"}' --json
```

<Tip>
  Map payload values to spreadsheet columns with `{{column_name}}` placeholders.
</Tip>

## Input Schema

| Name                    | Type      | Required | Default | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| ----------------------- | --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `payload.id`            | `string`  | Yes      |         | (Required) The unique identifier of a completed bulk email verification task. Generating the download link usually takes a few seconds. For larger tasks, the process may take longer: 100,000 emails , approximately 30 second; 400,000 emails , approximately 2 minutes. If the download link is unavailable after your initial request, wait a few seconds and try again. To prevent excessive requests, limit attempts for the same export to 15 requests within a 15-minute period . |
| `payload.keep_all_rows` | `boolean` | No       |         | (Optional) When set to `true`, all rows from the source .CSV file, including those without an email address, will be included in the downloaded .CSV file. Email verification results will not be provided for emails that do not meet your specified filters. Please note that this feature only applies to tasks created through the [/v1/verify/bulk/file](#tag/Bulk-verification/paths/~1v1~1verify~1bulk~1file/post) endpoint. Default value is `false`.                             |
| `payload.criteria`      | `object`  | No       |         | Specifies emails to retrieve based on verification state (`deliverable`, `undeliverable `, `risky`, or `unknown`) and attributes.                                                                                                                                                                                                                                                                                                                                                         |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "You can use this API to export selected or all emails to an .csv file. If the request is successful, a downloadable public link will be returned. For security reasons, the link will expire after 4 hours of generation as it's publicly available. You can always request a new file once the link expires. However, as the results for bulk email verification are available for only 90 days after verification, be sure to generate the file within the 90 days period. The endpoint is designed to export verified results only after the entire task has been completed. An error will be returned if the task is still in progress or incomplete.",
    "properties": {
      "id": {
        "type": "string",
        "description": "(Required) The unique identifier of a completed bulk email verification task. Generating the download link usually takes a few seconds. For larger tasks, the process may take longer: 100,000 emails , approximately 30 second; 400,000 emails , approximately 2 minutes. If the download link is unavailable after your initial request, wait a few seconds and try again. To prevent excessive requests, limit attempts for the same export to 15 requests within a 15-minute period ."
      },
      "keep_all_rows": {
        "type": "boolean",
        "description": "(Optional) When set to `true`, all rows from the source .CSV file, including those without an email address, will be included in the downloaded .CSV file. Email verification results will not be provided for emails that do not meet your specified filters. Please note that this feature only applies to tasks created through the [/v1/verify/bulk/file](#tag/Bulk-verification/paths/~1v1~1verify~1bulk~1file/post) endpoint. Default value is `false`."
      },
      "criteria": {
        "type": "object",
        "description": "Specifies emails to retrieve based on verification state (`deliverable`, `undeliverable `, `risky`, or `unknown`) and attributes.",
        "properties": {
          "free": {
            "type": "boolean",
            "description": "Whether the email is a free email.",
            "default": true
          },
          "role": {
            "type": "boolean",
            "description": "Whether the email is role based.",
            "default": true
          },
          "accept_all": {
            "type": "boolean",
            "description": "Whether the email is accept-all.",
            "default": true
          },
          "disposable": {
            "type": "boolean",
            "description": "Whether the email is disposable.",
            "default": false
          },
          "deliverable": {
            "type": "boolean",
            "description": "Whether the email is deliverable.",
            "default": true
          },
          "risky": {
            "type": "boolean",
            "description": "Whether the email is risky.",
            "default": false
          },
          "risky_score": {
            "type": "integer",
            "description": "The minimum score a email needs to meet in order to be included in the export. Only effective if `risky` is `true`.",
            "default": "50",
            "minimum": 0,
            "maximum": 100
          },
          "undeliverable": {
            "type": "boolean",
            "description": "Whether the email is undeliverable.",
            "default": false
          },
          "unknown": {
            "type": "boolean",
            "description": "Whether the email is unknown.",
            "default": false
          }
        },
        "additionalProperties": false
      }
    },
    "required": [
      "id"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output Schema

| Name          | Type     | Required | Default | Description                                    |
| ------------- | -------- | -------- | ------- | ---------------------------------------------- |
| `result.data` | `object` | Yes      |         | Provider response payload.                     |
| `result.meta` | `object` | No       |         | Additional response metadata (status, paging). |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Standard tool result payload.",
    "properties": {
      "data": {
        "type": "object",
        "description": "Provider response payload.",
        "properties": {
          "result": {
            "type": "string",
            "description": "> `ok` Indicates the request is successful. > `err` The bulk task has not finished yet, please try again later.",
            "enum": [
              "ok",
              "err"
            ]
          },
          "download_url": {
            "type": "string",
            "description": "The URL for the .csv file. The link will expire after 4 hours of generation."
          }
        },
        "additionalProperties": false
      },
      "meta": {
        "type": "object",
        "description": "Additional response metadata (status, paging).",
        "additionalProperties": true
      }
    },
    "required": [
      "data"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Advanced: Direct CLI

<Info>
  Use direct execution for single payload debugging.
</Info>

```bash theme={null}
deepline tools execute bounceban_export_bulk_results --payload '{
  "id": "string"
}' --json
```

### CLI flags

| Flag                        | Description                                         |
| --------------------------- | --------------------------------------------------- |
| `--json`                    | Print machine-readable output.                      |
| `--wait`                    | Wait for terminal provider status when supported.   |
| `--debug`                   | Enable wait mode with additional status/log output. |
| `--wait-timeout SECONDS`    | Max seconds to wait in wait mode.                   |
| `--poll-interval SECONDS`   | Polling interval in seconds during wait mode.       |
| `--timeout SECONDS`         | Request timeout in seconds.                         |
| `--connect-timeout SECONDS` | Connection timeout in seconds.                      |

## Provider API Context

<details>
  <summary>Show provider reference (optional)</summary>

  ```md theme={null}
  Sources reviewed 2026-07-26:

  - https://bounceban.com/public/doc/api.yaml
  - https://bounceban.com/public/doc/llms.txt

  ## Auth

  BounceBan expects the managed API key in the `Authorization` header, without a Bearer prefix.

  ## Pricing

  - Single verification and each successfully verified email in a bulk task consume one BounceBan verification credit.
  - The normal single verification response and completed bulk-status response expose `credits_consumed`; this is the preferred settlement input.
  - A basic single verification with `disable_catchall_verify=1` can return `unknown` with zero verification cost.
  - Single and bulk result polling, result retrieval, exports, task deletion, and account lookup do not consume verification credits.
  - The configured managed-account provider exchange rate is $0.004 per BounceBan credit, as directed for this integration.

  ## Endpoint notes

  The standard single verification call can return `status: verifying`; poll the free single-status endpoint with its id rather than submitting the email again. The waterfall endpoint can return HTTP 408 while retaining the verification task; BounceBan documents retries for the same email within 30 minutes as free.

  The bulk file upload is documented as `multipart/form-data`. It remains registered but disabled until the shared V2 runtime gains multipart transport, so it cannot silently send malformed JSON. The waterfall endpoint is also disabled: its HTTP 408 can retain a billable task, which requires a non-2xx async settlement path before it can be exposed safely.

  ## Response evidence

  `raw-upstream-examples/single-success.json` preserves the provider's documented single-verification response, including `credits_consumed`. `raw-upstream-examples/bulk-status-finished.json` preserves the completed bulk-status response and its task-level `credits_consumed`. Normalized Deepline samples are stored separately under `sample-outputs/`.
  ```
</details>

## Cost

* Pricing model: `fixed` (per call).
* Estimated Deepline credits: `0` per pricing unit.
* Provider-native pricing may still exist outside Deepline credit billing.
* Billing mode: `no_bill`.
