> ## 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.

# Emailbison Bulk Delete Leads By Id: Inputs, Cost & CLI

> Permanently delete EmailBison leads by ID. Includes inputs, outputs, pricing notes, Deepline CLI examples, and GTM automation guidance.

## 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=emailbison_bulk_delete_leads_by_id:{"lead_ids":"{{lead_ids}}"}' --json
```

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

## Input Schema

| Name               | Type    | Required | Default | Description                                      |
| ------------------ | ------- | -------- | ------- | ------------------------------------------------ |
| `payload.lead_ids` | `array` | Yes      |         | The id of an existing record in the leads table. |

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

  ### Input JSON Schema

  ```json theme={null}
  {
    "type": "object",
    "description": "Permanently delete leads and associated data **Hold on. You may not need to delete leads.** You may be able to simply re-upload leads instead **I mapped the wrong custom variables for these leads** No problem! Simply re-upload the leads and we'll update the records in place. This is especially useful if you already have lead history like conversations, campaigns, etc. **I don't to email these leads anymore** We recommend unsubscribing these leads instead. Bulk select -> Update Status -> Unsubscribe. This way, you can preserve the lead history and stats for future reports. **I want to update these leads with more data** Instead of deleting, simply re-upload the leads. We'll update the records in place. This includes all campaign emails too. **I attached the wrong tags** You can simply bulk select and remove tags instead of deleting the entire leads. **I don't want to use too much data** We have no limits on lead storage. You can store as many leads as you want. We recommend keeping the leads in your workspace for future campaigns. **Why is it recommended to not delete leads?** We build up history for every lead record you upload. There's no harm in keeping it in the workspace. If you delete leads, future responses from that lead will be untracked and not tied to any campaigns. This can be harder to manage for your team. The behaviour of deleting leads comes from other sequencers that charge you for lead storage. You don't need to worry about deleting leads for 99% of use cases. **If you still want to delete leads, please read below carefully** **Leads will be removed from campaigns** This will stop all future emails for the selected leads and remove them from all campaigns. If campaigns have no more leads remaining, they will be marked as \"completed\" **Previous campaign stats will be preserved** We will preserve all past campaign stats like replies, opens, emails sent, etc. **Past and future lead conversations will be affected** Past conversations will no longer be tied to these leads, and future emails in those conversations will show us as \"untracked.\" **Leads will no longer be accessible via API** If you have workflows that use these leads, they will no longer work. These leads will be deleted permanently. If you re-upload them in the future, they will be different lead records. **Future campaign stats will not be tracked** If any of these leads reply in the future, those emails not increment any stats. They will show up as \"untracked replies.\" This also means that any webhook workflows will also be affected. **We recommend unsubscribing these leads instead** If you simply don't want to email these leads anymore, we recommend unsubscribing them instead. This will preserve all data and all workflows, and there's no additional cost to you.",
    "properties": {
      "lead_ids": {
        "type": "array",
        "description": "The id of an existing record in the leads table.",
        "items": {
          "type": "integer"
        }
      }
    },
    "required": [
      "lead_ids"
    ],
    "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": {
          "data": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean"
              },
              "message": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "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 emailbison_bulk_delete_leads_by_id --payload '{
  "lead_ids": "array"
}' --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.                      |

## 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`.
