{
  "service": "phantombuster",
  "displayName": "PhantomBuster",
  "categories": [
    "Developer Tools",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "phantombuster_api_key",
      "description": "PhantomBuster API key sent with the X-Phantombuster-Key header. Create or view it from https://phantombuster.com/workspace-settings.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://phantombuster.com",
  "actions": [
    {
      "id": "phantombuster.get_agent",
      "service": "phantombuster",
      "name": "get_agent",
      "description": "Get a Phantombuster agent by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Phantombuster record ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting a Phantombuster agent."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "agent": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Phantombuster record ID."
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Name of the agent."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "number",
                "description": "A Phantombuster v2 timestamp in milliseconds."
              },
              "scriptOrgName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Organization name owning the agent script."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "scriptId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Script ID used by the agent."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "script": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Script filename used by the agent."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "branch": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Script branch used by the agent."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "environment": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Script branch environment used by the agent."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "argument": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Default argument stored on the agent."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A Phantombuster agent, with upstream fields preserved."
          }
        },
        "additionalProperties": false,
        "description": "The requested Phantombuster agent."
      }
    },
    {
      "id": "phantombuster.get_container",
      "service": "phantombuster",
      "name": "get_container",
      "description": "Get a Phantombuster container by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Phantombuster record ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for getting a Phantombuster container."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "container": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Phantombuster record ID."
              },
              "status": {
                "type": "string",
                "description": "Current container status."
              },
              "createdAt": {
                "type": "number",
                "description": "A Phantombuster v2 timestamp in milliseconds."
              },
              "launchType": {
                "type": "string",
                "description": "How the container was launched."
              },
              "endType": {
                "type": "string",
                "description": "How the container ended."
              },
              "endedAt": {
                "type": "number",
                "description": "Timestamp when the container ended."
              }
            },
            "additionalProperties": true,
            "description": "A Phantombuster container, with upstream fields preserved."
          }
        },
        "additionalProperties": false,
        "description": "The requested Phantombuster container."
      }
    },
    {
      "id": "phantombuster.get_current_organization",
      "service": "phantombuster",
      "name": "get_current_organization",
      "description": "Get the current Phantombuster organization for the connected API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for getting the current organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organization": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "The Phantombuster record ID."
              },
              "name": {
                "type": "string",
                "description": "Name of the Phantombuster organization."
              },
              "planSlug": {
                "type": "string",
                "description": "Current plan slug for the organization."
              },
              "timezone": {
                "type": "string",
                "description": "Timezone configured for the organization."
              }
            },
            "additionalProperties": true,
            "description": "The current Phantombuster organization, with upstream fields preserved."
          }
        },
        "additionalProperties": false,
        "description": "The current Phantombuster organization."
      }
    },
    {
      "id": "phantombuster.launch_agent",
      "service": "phantombuster",
      "name": "launch_agent",
      "description": "Add a Phantombuster agent to the launch queue.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Phantombuster record ID."
          },
          "argument": {
            "anyOf": [
              {
                "type": "string",
                "description": "Agent launch argument encoded as a JSON string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Agent launch argument as a JSON object."
              }
            ],
            "description": "Agent launch argument as a JSON string or plain object."
          },
          "arguments": {
            "anyOf": [
              {
                "type": "string",
                "description": "Agent launch argument encoded as a JSON string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Agent launch argument as a JSON object."
              }
            ],
            "description": "Agent launch argument as a JSON string or plain object."
          },
          "bonusArgument": {
            "anyOf": [
              {
                "type": "string",
                "description": "Agent launch argument encoded as a JSON string."
              },
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Agent launch argument as a JSON object."
              }
            ],
            "description": "Agent launch argument as a JSON string or plain object."
          },
          "saveArgument": {
            "type": "boolean",
            "description": "Whether to save argument as the agent default launch options."
          },
          "saveArguments": {
            "type": "boolean",
            "description": "Whether to save argument as the agent default launch options."
          },
          "manualLaunch": {
            "type": "boolean",
            "description": "Whether the launch should be considered manually triggered."
          },
          "maxInstanceCount": {
            "type": "integer",
            "minimum": 1,
            "description": "Only launch if already running instances are below this value."
          },
          "internalMetadata": {
            "type": "object",
            "additionalProperties": {
              "description": "A metadata value."
            },
            "description": "Key-value metadata attached to the launched container."
          },
          "userCustomMetadata": {
            "type": "object",
            "additionalProperties": {
              "description": "A metadata value."
            },
            "description": "Key-value user metadata attached to the launched container."
          },
          "persistedVolumeKey": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 256,
                "description": "Key identifying the persisted volume to attach to the container."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for launching a Phantombuster agent."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "launch": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw JSON result returned by Phantombuster for the request."
          }
        },
        "additionalProperties": false,
        "description": "The Phantombuster launch result."
      }
    },
    {
      "id": "phantombuster.list_agents",
      "service": "phantombuster",
      "name": "list_agents",
      "description": "List all Phantombuster agents in the current organization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for listing Phantombuster agents."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "agents": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Phantombuster record ID."
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Name of the agent."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "type": "number",
                  "description": "A Phantombuster v2 timestamp in milliseconds."
                },
                "scriptOrgName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Organization name owning the agent script."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "scriptId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Script ID used by the agent."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "script": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Script filename used by the agent."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "branch": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Script branch used by the agent."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "environment": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Script branch environment used by the agent."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "argument": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Default argument stored on the agent."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A Phantombuster agent, with upstream fields preserved."
            },
            "description": "Agents returned by Phantombuster."
          }
        },
        "additionalProperties": false,
        "description": "All Phantombuster agents in the current organization."
      }
    },
    {
      "id": "phantombuster.list_containers",
      "service": "phantombuster",
      "name": "list_containers",
      "description": "List containers associated with a Phantombuster agent.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "string",
            "minLength": 1,
            "description": "The Phantombuster record ID."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Phantombuster containers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "containers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Phantombuster record ID."
                },
                "status": {
                  "type": "string",
                  "description": "Current container status."
                },
                "createdAt": {
                  "type": "number",
                  "description": "A Phantombuster v2 timestamp in milliseconds."
                },
                "launchType": {
                  "type": "string",
                  "description": "How the container was launched."
                },
                "endType": {
                  "type": "string",
                  "description": "How the container ended."
                },
                "endedAt": {
                  "type": "number",
                  "description": "Timestamp when the container ended."
                }
              },
              "additionalProperties": true,
              "description": "A Phantombuster container, with upstream fields preserved."
            },
            "description": "Containers returned by Phantombuster."
          },
          "maxLimitReached": {
            "type": "boolean",
            "description": "Whether Phantombuster reached the response size limit."
          }
        },
        "additionalProperties": false,
        "required": [
          "containers"
        ],
        "description": "Containers associated with the requested agent."
      }
    },
    {
      "id": "phantombuster.stop_agent",
      "service": "phantombuster",
      "name": "stop_agent",
      "description": "Stop a Phantombuster agent.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Phantombuster record ID."
          },
          "softAbort": {
            "type": "boolean",
            "description": "Whether to try a soft abort."
          },
          "cascadeToAllSlaves": {
            "type": "boolean",
            "description": "Whether to recursively stop slave agents."
          },
          "dontLaunchSoon": {
            "type": "boolean",
            "description": "Whether to disable the next scheduled launch-soon run."
          },
          "switchToManualLaunch": {
            "type": "boolean",
            "description": "Whether to switch the agent to manual launch."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for stopping a Phantombuster agent."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "stop": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw JSON result returned by Phantombuster for the request."
          }
        },
        "additionalProperties": false,
        "description": "The Phantombuster stop result."
      }
    }
  ]
}
