<!-- BusyBot node reference — https://busybot.net/tools/phantombuster/ -->

> Node: Phantombuster (`phantombuster`) · Action · v1
> Category: Marketing · Credentials: Phantombuster API (`phantombusterApi`)
> Updated: 2026-08-16

# Phantombuster

> Manage and launch Phantombuster web scraping agents.

## Overview

Phantombuster is a cloud platform for web scraping and automation, widely used for LinkedIn profile scraping, social media data extraction and lead generation. Use this node to work with the agents in your Phantombuster account: list them, look one up, launch one with custom arguments, collect the output of its most recent run, and delete agents you no longer need.

**Category:** Marketing  
**Tool Name:** `phantombuster`  
**Version:** 1

**Appearance:** Icon: `lucide-Ghost` | Color: `#5849be`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Phantombuster API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/phantombuster-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Agent | `agent` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Delete | `delete` | Delete an agent by ID |
| Get | `get` | Get an agent by ID |
| Get Many | `getAll` | Get many agents of the current user's organization |
| Get Output | `getOutput` | Get the output of the most recent container of an agent |
| Launch | `launch` | Add an agent to the launch queue |

### Parameters

Agent ID and Limit accept `{{ … }}` expressions, so they can be taken from the incoming item. The remaining parameters — including everything inside Additional Fields — are used exactly as you type them.

#### Agent: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Agent ID | `string` | Yes | — | The ID of the agent to delete. Find agent IDs via the Phantombuster dashboard or the Get Many operation. |

#### Agent: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Agent ID | `string` | Yes | — | The ID of the agent to retrieve. |

#### Agent: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `25` | Max number of results to return. _(shown when Return All is `false`)_ |

#### Agent: Get Output

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Agent ID | `string` | Yes | — | The ID of the agent whose output to retrieve. Find agent IDs via the Phantombuster dashboard or the Get Many operation. |
| Resolve Data | `boolean` | No | `true` | By default the output is presented as string. If this option gets activated, it will resolve the data automatically. |
| Additional Fields | `collection` | No | `{}` | Optional settings that narrow which part of the run's output is returned. |
| — Prev Container ID | `string` | No | — | If set, the output will be retrieved from the container after the specified previous container ID. |
| — Prev Status | `options` | No | — | If set, allows to define which status was previously retrieved on user-side. |
| | | | | Options: `finished`, `lauch error` (Launch Error), `never launched`, `running`, `starting`, `unknown` |
| — Prev Runtime Event Index | `number` | No | `0` | If set, the container's runtime events will be returned in the response starting from the provided previous runtime event index. |

#### Agent: Launch

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Agent ID | `string` | Yes | — | The ID of the agent to launch. Find agent IDs via the Phantombuster dashboard or the Get Many operation. |
| Resolve Data | `boolean` | No | `true` | By default the launch response only includes the container ID. If activated, full container details are fetched automatically. |
| JSON Parameters | `boolean` | No | `false` | Whether to provide arguments and bonus arguments as raw JSON strings instead of key-value pairs. |
| Additional Fields | `collection` | No | `{}` | Optional launch settings — the arguments handed to the agent, plus how and when it is allowed to start. |
| — Arguments (JSON) | `json` | No | — | Agent argument as a JSON string. Retrieved with buster.argument in the agent's script. _(shown when JSON Parameters is `true`)_ |
| — Arguments | `fixedCollection` | No | `{}` | Agent arguments as key-value pairs. Nest the values under `argumentValues`; add one entry per argument. _(shown when JSON Parameters is `false`)_ |
| — — Key | `string` | No | — | Name of the argument key to add. |
| — — Value | `string` | No | — | Value to set for the argument key. |
| — Bonus Argument (JSON) | `string` | No | — | Agent bonus argument as a JSON string. Single-use, merged with original argument for this launch. Retrieved with buster.argument in the agent's script. _(shown when JSON Parameters is `true`)_ |
| — Bonus Argument | `fixedCollection` | No | `{}` | Bonus arguments as key-value pairs. Nest the values under `bonusArgumentValue`; add one entry per argument. _(shown when JSON Parameters is `false`)_ |
| — — Key | `string` | No | — | Name of the bonus argument key to add. |
| — — Value | `string` | No | — | Value to set for the bonus argument key. |
| — Manual Launch | `boolean` | No | `false` | Whether the agent will be considered as "launched manually". |
| — Max Instance Count | `number` | No | `0` | If set, the agent will only be launched if the number of already running instances is below the specified number. |
| — Save Argument | `string` | No | — | If "true", argument will be saved as the default launch options for the agent. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

The Phantombuster response is **merged onto the input item JSON** — its fields are spread over the incoming item, so whatever your upstream nodes put on the item survives unless Phantombuster returns a field with the same name. Binary data on the input item is forwarded unchanged.

Item counts depend on the operation:

- **Delete, Get, Get Output and Launch** produce exactly one output item per input item.
- **Get Many** (`getAll`) **fans out**: one output item per agent in the organization. An account with twelve agents turns one input item into twelve output items.

Whenever a response is a list rather than an object, it lands on the item under `items` instead of being spread — this is what you get from a scraper whose result is an array of records.

What each operation merges:

| Operation | Merged onto the item |
|-----------|----------------------|
| `delete` | `success: true`. Phantombuster returns no body for a delete, so this flag is the node's confirmation that the call succeeded. |
| `get` | The agent record returned by Phantombuster. |
| `getAll` | One agent record per output item. |
| `getOutput` | With Resolve Data on, the run's parsed result — an object spread onto the item, or an array under `items`. An agent that has not produced a result yet merges nothing, and a result that is not valid JSON lands under `resultObject`. With Resolve Data off, the raw output response, which carries `containerId` plus the run's progress and console output. |
| `launch` | With Resolve Data off, the launch response, which carries the `containerId` of the queued run. With Resolve Data on, the full container record fetched with that ID. |

A launch returns as soon as the agent is queued, so the container it reports is not finished yet. To collect results, follow the launch with a wait and then a Get Output call on the same agent.

Reference the result downstream by expression, for example `{{ $json.containerId }}`.

Failures do not merge anything onto the item: with error handling set to **continue** or **errorPort** a failed item is replaced by an error item instead.

## Usage Examples

- Launch a Phantombuster LinkedIn scraper agent
- Get the output of a Phantombuster agent
- List all Phantombuster agents in the organization
- Delete a Phantombuster agent

## Example Configuration

List every agent in the organization, one output item per agent, so you can look up IDs by name:

```json
{
  "type": "phantombuster",
  "parameters": {
    "resource": "agent",
    "operation": "getAll",
    "returnAll": true
  }
}
```

Fetch a single agent's configuration using an ID carried on the item:

```json
{
  "type": "phantombuster",
  "parameters": {
    "resource": "agent",
    "operation": "get",
    "agentId": "{{ $json.agentId }}"
  }
}
```

Launch a scraper with key-value arguments and wait for the full container record to come back:

```json
{
  "type": "phantombuster",
  "parameters": {
    "resource": "agent",
    "operation": "launch",
    "agentId": "{{ $json.agentId }}",
    "resolveData": true,
    "jsonParameters": false,
    "additionalFields": {
      "argumentsUi": {
        "argumentValues": [
          { "key": "spreadsheetUrl", "value": "https://docs.google.com/spreadsheets/d/example" },
          { "key": "numberOfProfiles", "value": "50" }
        ]
      },
      "manualLaunch": false,
      "maxInstanceCount": 1
    }
  }
}
```

Launch the same agent with a raw JSON argument instead, and a single-use bonus argument for this run only:

```json
{
  "type": "phantombuster",
  "parameters": {
    "resource": "agent",
    "operation": "launch",
    "agentId": "{{ $json.agentId }}",
    "resolveData": false,
    "jsonParameters": true,
    "additionalFields": {
      "argumentsJson": "{\"spreadsheetUrl\":\"https://docs.google.com/spreadsheets/d/example\",\"numberOfProfiles\":50}",
      "bonusArgumentJson": "{\"sessionCookie\":\"abc123\"}",
      "saveArgument": "true"
    }
  }
}
```

Collect the parsed result of the agent's most recent run:

```json
{
  "type": "phantombuster",
  "parameters": {
    "resource": "agent",
    "operation": "getOutput",
    "agentId": "{{ $json.agentId }}",
    "resolveData": true
  }
}
```

Read only the console output produced after a known point in an earlier run:

```json
{
  "type": "phantombuster",
  "parameters": {
    "resource": "agent",
    "operation": "getOutput",
    "agentId": "{{ $json.agentId }}",
    "resolveData": false,
    "additionalFields": {
      "prevContainerId": "3021234567890123",
      "prevStatus": "running",
      "prevRuntimeEventIndex": 5
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Phantombuster manages and launches cloud-based web scraping and automation agents for LinkedIn scraping, social media data extraction, and lead generation.