# Sushidata Swarm of Agents (`sushidata/sushidata-swarm-of-agents`) Actor

Deploys a swarm of agents to perform any research task. It's also able to leverage Apify actors to accomplish its tasks.

- **URL**: https://apify.com/sushidata/sushidata-swarm-of-agents.md
- **Developed by:** [Sushidata](https://apify.com/sushidata) (community)
- **Categories:** AI, Agents, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $150.00 / 1,000 assigned agents

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Sushidata Research Swarm Actor

Deploy parallel AI research swarms via **Sushidata** on the Apify platform. This Actor launches multiple AI agents that work in parallel to deeply research any topic, then aggregates and verifies their findings.

### What does Sushidata Research Swarm do?

This Actor connects to your [Sushidata](https://dashboard.sushidata.ai) dataspace and deploys a configurable swarm of AI research agents. Each agent tackles a different angle of your research query simultaneously, providing comprehensive multi-perspective analysis. Results are verified for source quality and pushed to an Apify dataset for easy access via API, scheduling, and integrations.

### Why use this Actor?

- **Deep research at scale** — Deploy 2-20 parallel AI agents that each explore a different facet of your question
- **Verified sources** — Evidence links are automatically verified; bad/blocked sources are filtered out
- **Automated & scheduled** — Run on a schedule via Apify platform, access results via API
- **Context persistence** — Results are saved to your Sushidata context lake for future reference
- **Partial results** — If the timeout is reached, you still get results from completed workers

### How to use Sushidata Research Swarm

1. Create a free account at [Sushidata](https://dashboard.sushidata.ai) and get your **Resource ID**
2. Open this Actor on Apify Console and click "Start"
3. Enter your Resource ID and research query
4. Choose a swarm size (default: 5 agents)
5. Run the Actor and check the dataset for results

### Input

| Field                 | Type    | Required | Default | Description                                   |
| --------------------- | ------- | -------- | ------- | --------------------------------------------- |
| `resourceId`          | string  | Yes      | —       | Your Sushidata dataspace resource ID          |
| `query`               | string  | Yes      | —       | Research task for the swarm                   |
| `swarmSize`           | integer | No       | 5       | Number of parallel agents (2-20)              |
| `pollIntervalSeconds` | integer | No       | 60      | Polling interval in seconds                   |
| `timeoutMinutes`      | integer | No       | 5       | Max wait time before fetching partial results |

#### Swarm size guide

| Size  | Use case                         |
| ----- | -------------------------------- |
| 3–5   | Focused, specific tasks          |
| 5–10  | Broad research topics            |
| 10–20 | Exhaustive, multi-angle analysis |

### Output

The Actor pushes two types of records to the dataset:

**1. Deployment record** (`type: "swarm_deployed"`) — confirms the swarm was launched with the plan and worker details.

**2. Result record** (`type: "swarm_result"`) — the final aggregated research summary.

```json
{
    "type": "swarm_result",
    "query": "Analyze the current state of AI agents in production",
    "summary": "Based on research from multiple angles...",
    "completed": 5,
    "total": 5,
    "pending": 0,
    "isPartial": false,
    "verification": { "good": 4, "bad": 1, "blocked": 0 },
    "goodSources": ["https://verified-source-1.com", "https://verified-source-2.com"],
    "timestamp": "2026-05-15T12:00:00.000Z"
}
````

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data fields

| Field         | Description                                     |
| ------------- | ----------------------------------------------- |
| `type`        | Record type: `swarm_deployed` or `swarm_result` |
| `query`       | The original research query                     |
| `summary`     | Aggregated research summary from all workers    |
| `completed`   | Number of workers that finished                 |
| `total`       | Total number of workers deployed                |
| `isPartial`   | Whether the result is based on incomplete data  |
| `goodSources` | Verified evidence links                         |
| `timestamp`   | ISO timestamp of the result                     |

### Pricing / Cost estimation

This Actor itself uses minimal Apify compute (no browser, just HTTP calls). The main cost factor is your Sushidata plan token usage, which depends on swarm size and query complexity. A typical run with 5 agents completes in under 5 minutes of Apify compute time.

### Tips

- Start with a **swarm size of 3-5** for focused questions to save Sushidata tokens
- Use **specific, well-defined queries** — "Analyze pros and cons of React Server Components for e-commerce" is better than "React"
- Increase `timeoutMinutes` for larger swarms (10+ agents may need 10-15 minutes)
- Results are saved to your Sushidata context lake, so future queries can build on past research

### FAQ and support

**Is this affiliated with Sushidata?** No, this is a community Actor that integrates with the Sushidata API.

**What if I hit token limits?** The Actor will report the error and suggest upgrading your Sushidata plan.

**Where do I get a Resource ID?** Sign up at [dashboard.sushidata.ai](https://dashboard.sushidata.ai) and create a dataspace. The resource ID is in your dataspace URL.

For issues or feature requests, use the Issues tab. For custom solutions, reach out via the Apify community.

# Actor input Schema

## `resourceId` (type: `string`):

Your Sushidata dataspace resource ID. Get one by creating an account at https://dashboard.sushidata.ai

## `query` (type: `string`):

The research task or question for the swarm to investigate.

## `swarmSize` (type: `integer`):

Number of parallel research agents to deploy (2-20). Use 3-5 for focused tasks, 5-10 for broad topics, 10-20 for exhaustive analysis.

## `pollIntervalSeconds` (type: `integer`):

How often to check swarm progress in seconds.

## `timeoutMinutes` (type: `integer`):

Maximum time to wait for swarm completion before fetching partial results.

## Actor input object example

```json
{
  "resourceId": "019e2d2c-4ea4-7edf-af64-ce517bcb053e",
  "query": "Find me evidence for how much the TAM for agentic AI will be in 5 years",
  "swarmSize": 2,
  "pollIntervalSeconds": 60,
  "timeoutMinutes": 5
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "resourceId": "019e2d2c-4ea4-7edf-af64-ce517bcb053e",
    "query": "Find me evidence for how much the TAM for agentic AI will be in 5 years"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sushidata/sushidata-swarm-of-agents").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "resourceId": "019e2d2c-4ea4-7edf-af64-ce517bcb053e",
    "query": "Find me evidence for how much the TAM for agentic AI will be in 5 years",
}

# Run the Actor and wait for it to finish
run = client.actor("sushidata/sushidata-swarm-of-agents").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "resourceId": "019e2d2c-4ea4-7edf-af64-ce517bcb053e",
  "query": "Find me evidence for how much the TAM for agentic AI will be in 5 years"
}' |
apify call sushidata/sushidata-swarm-of-agents --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sushidata/sushidata-swarm-of-agents",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Sushidata Swarm of Agents",
        "description": "Deploys a swarm of agents to perform any research task. It's also able to leverage Apify actors to accomplish its tasks.",
        "version": "0.0",
        "x-build-id": "lRN2c0BGlZstS04KC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sushidata~sushidata-swarm-of-agents/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sushidata-sushidata-swarm-of-agents",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/sushidata~sushidata-swarm-of-agents/runs": {
            "post": {
                "operationId": "runs-sync-sushidata-sushidata-swarm-of-agents",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/sushidata~sushidata-swarm-of-agents/run-sync": {
            "post": {
                "operationId": "run-sync-sushidata-sushidata-swarm-of-agents",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "resourceId",
                    "query"
                ],
                "properties": {
                    "resourceId": {
                        "title": "Sushidata Resource ID",
                        "type": "string",
                        "description": "Your Sushidata dataspace resource ID. Get one by creating an account at https://dashboard.sushidata.ai",
                        "default": "019e2d2c-4ea4-7edf-af64-ce517bcb053e"
                    },
                    "query": {
                        "title": "Research Query",
                        "type": "string",
                        "description": "The research task or question for the swarm to investigate.",
                        "default": "Find me evidence for how much the TAM for agentic AI will be in 5 years"
                    },
                    "swarmSize": {
                        "title": "Swarm Size",
                        "minimum": 2,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Number of parallel research agents to deploy (2-20). Use 3-5 for focused tasks, 5-10 for broad topics, 10-20 for exhaustive analysis.",
                        "default": 2
                    },
                    "pollIntervalSeconds": {
                        "title": "Poll Interval (seconds)",
                        "minimum": 10,
                        "maximum": 300,
                        "type": "integer",
                        "description": "How often to check swarm progress in seconds.",
                        "default": 60
                    },
                    "timeoutMinutes": {
                        "title": "Timeout (minutes)",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "Maximum time to wait for swarm completion before fetching partial results.",
                        "default": 5
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
