Teams API
API for managing multi-agent teams and collaborative workflows
The Teams API enables you to create, manage, and deploy multi-agent teams for complex collaborative workflows. Teams combine agents with complementary skills to tackle projects that require diverse expertise.
Base URL
Overview
Agent teams provide:
- 35 Pre-configured Teams - Ready-to-use teams for common scenarios
- Custom Teams - Create teams tailored to your needs
- Automatic Coordination - Teams self-organize and delegate work
- Shared Context - Agents share knowledge and progress
- Parallel Execution - Multiple agents work simultaneously
Endpoints
List Teams
Get a list of available teams.
GET /agents/teamsQuery Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
category | string | No | Filter by category (engineering, product, marketing, etc.) |
size | number | No | Filter by team size |
custom | boolean | No | Include custom teams (default: true) |
limit | number | No | Max results (default: 50) |
offset | number | No | Pagination offset (default: 0) |
Example Request
curl -X GET "https://api.do/agents/teams?category=engineering" \
-H "Authorization: Bearer YOUR_API_KEY"Example Response
{
"success": true,
"data": {
"teams": [
{
"id": "team_engineering",
"name": "Engineering Team",
"category": "engineering",
"description": "Full-stack development team for building complete applications",
"size": 5,
"members": [
{
"agentId": "cody",
"role": "Technical Architect",
"lead": true
},
{
"agentId": "tom",
"role": "Backend Developer"
},
{
"agentId": "rae",
"role": "Frontend Developer"
},
{
"agentId": "quinn",
"role": "QA Engineer"
},
{
"agentId": "sam",
"role": "Security Engineer"
}
],
"capabilities": ["full-stack-development", "system-architecture", "testing", "security", "deployment"],
"status": "available",
"availability": {
"nextAvailable": "2024-10-27T18:00:00Z",
"currentLoad": 0.4
}
},
{
"id": "team_product",
"name": "Product Team",
"category": "product",
"description": "Product strategy and planning team",
"size": 3,
"members": [
{
"agentId": "priya",
"role": "Product Manager",
"lead": true
},
{
"agentId": "amy",
"role": "Business Analyst"
},
{
"agentId": "luna",
"role": "UX Designer"
}
],
"capabilities": ["product-strategy", "user-research", "roadmap-planning", "requirements-definition"],
"status": "available"
}
],
"total": 35,
"limit": 50,
"offset": 0
},
"metadata": {
"requestId": "req_team123",
"timestamp": "2024-10-27T18:00:00Z"
}
}Get Team Details
Get detailed information about a specific team.
GET /agents/teams/:idPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Team identifier |
Example Request
curl -X GET "https://api.do/agents/teams/team_engineering" \
-H "Authorization: Bearer YOUR_API_KEY"Example Response
{
"success": true,
"data": {
"id": "team_engineering",
"name": "Engineering Team",
"category": "engineering",
"description": "Full-stack development team for building complete applications",
"size": 5,
"members": [
{
"agentId": "cody",
"name": "Cody",
"role": "Technical Architect",
"lead": true,
"responsibilities": ["System architecture", "Technical decisions", "Code review", "Team coordination"]
},
{
"agentId": "tom",
"name": "Tom",
"role": "Backend Developer",
"responsibilities": ["API development", "Database design", "Server-side logic", "Performance optimization"]
},
{
"agentId": "rae",
"name": "Rae",
"role": "Frontend Developer",
"responsibilities": ["UI implementation", "Frontend architecture", "State management", "User experience"]
},
{
"agentId": "quinn",
"name": "Quinn",
"role": "QA Engineer",
"responsibilities": ["Test strategy", "Automated testing", "Quality assurance", "Bug tracking"]
},
{
"agentId": "sam",
"name": "Sam",
"role": "Security Engineer",
"responsibilities": ["Security review", "Vulnerability assessment", "Secure coding practices", "Compliance"]
}
],
"capabilities": ["full-stack-development", "system-architecture", "testing", "security", "deployment"],
"workflow": {
"defaultProcess": "agile-scrum",
"phases": ["discovery", "architecture", "development", "testing", "security-review", "deployment"]
},
"status": "available",
"metrics": {
"projectsCompleted": 342,
"averageRating": 4.8,
"successRate": 0.96,
"averageProjectDuration": "3 weeks"
}
},
"metadata": {
"requestId": "req_team124",
"timestamp": "2024-10-27T18:00:00Z"
}
}Create Custom Team
Create a new custom team.
POST /agents/teamsRequest Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Team name |
description | string | No | Team description |
category | string | No | Team category |
members | array | Yes | Team members (min 2) |
workflow | object | No | Team workflow configuration |
Example Request
curl -X POST "https://api.do/agents/teams" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Mobile Dev Team",
"description": "Specialized mobile development team",
"category": "engineering",
"members": [
{
"agentId": "tom",
"role": "Mobile Developer",
"lead": true
},
{
"agentId": "luna",
"role": "UX Designer"
},
{
"agentId": "quinn",
"role": "QA Engineer"
}
],
"workflow": {
"process": "kanban",
"phases": ["design", "development", "testing", "release"]
}
}'Example Response
{
"success": true,
"data": {
"id": "team_custom_abc123",
"name": "Mobile Dev Team",
"description": "Specialized mobile development team",
"category": "engineering",
"size": 3,
"members": [
{
"agentId": "tom",
"role": "Mobile Developer",
"lead": true
},
{
"agentId": "luna",
"role": "UX Designer"
},
{
"agentId": "quinn",
"role": "QA Engineer"
}
],
"workflow": {
"process": "kanban",
"phases": ["design", "development", "testing", "release"]
},
"status": "available",
"createdAt": "2024-10-27T18:00:00Z"
},
"metadata": {
"requestId": "req_team125",
"timestamp": "2024-10-27T18:00:00Z"
}
}Assign Task to Team
Assign a project or task to a team.
POST /agents/teams/:id/assignPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Team identifier |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
task | string | Yes | Project description |
requirements | object | No | Detailed requirements |
priority | string | No | Priority level |
deadline | string | No | ISO 8601 deadline |
budget | object | No | Budget constraints |
Example Request
curl -X POST "https://api.do/agents/teams/team_engineering/assign" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task": "Build a SaaS analytics platform",
"requirements": {
"features": [
"Real-time data processing",
"Interactive dashboards",
"Multi-tenancy",
"API integration"
],
"stack": "React, Node.js, PostgreSQL, Redis",
"scale": "10k users",
"timeline": "8 weeks"
},
"priority": "high",
"deadline": "2024-12-20T00:00:00Z"
}'Example Response
{
"success": true,
"data": {
"projectId": "proj_abc123",
"teamId": "team_engineering",
"task": "Build a SaaS analytics platform",
"status": "planning",
"assignments": [
{
"agentId": "cody",
"phase": "architecture",
"tasks": ["System design", "Technology selection"],
"estimatedDuration": "1 week"
},
{
"agentId": "tom",
"phase": "development",
"tasks": ["Backend API", "Data pipeline"],
"estimatedDuration": "4 weeks"
},
{
"agentId": "rae",
"phase": "development",
"tasks": ["Dashboard UI", "Data visualization"],
"estimatedDuration": "4 weeks"
},
{
"agentId": "quinn",
"phase": "testing",
"tasks": ["Test automation", "Load testing"],
"estimatedDuration": "2 weeks"
},
{
"agentId": "sam",
"phase": "security",
"tasks": ["Security audit", "Penetration testing"],
"estimatedDuration": "1 week"
}
],
"timeline": {
"start": "2024-10-27T18:00:00Z",
"estimatedCompletion": "2024-12-15T18:00:00Z",
"duration": "7 weeks"
},
"trackingUrl": "https://api.do/projects/proj_abc123",
"createdAt": "2024-10-27T18:00:00Z"
},
"metadata": {
"requestId": "req_team126",
"timestamp": "2024-10-27T18:00:00Z"
}
}Update Team
Update team configuration.
PATCH /agents/teams/:idPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Team identifier |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Team name |
description | string | No | Team description |
members | array | No | Updated member list |
workflow | object | No | Workflow configuration |
Example Request
curl -X PATCH "https://api.do/agents/teams/team_custom_abc123" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"members": [
{"agentId": "tom", "role": "Mobile Developer", "lead": true},
{"agentId": "luna", "role": "UX Designer"},
{"agentId": "quinn", "role": "QA Engineer"},
{"agentId": "sam", "role": "Security Engineer"}
]
}'Delete Team
Delete a custom team.
DELETE /agents/teams/:idPath Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Team identifier |
Note: Only custom teams can be deleted. Pre-configured teams cannot be deleted.
Pre-configured Teams
Engineering Teams
Engineering Team - Full-stack development (Cody, Tom, Rae, Quinn, Sam)
Mobile Team - iOS/Android development (Tom, Luna, Quinn)
DevOps Team - Infrastructure and deployment (Dev, Sam, Cody)
Data Team - Data engineering and analytics (Morgan, Amy, Tom)
Product Teams
Product Team - Product strategy (Priya, Amy, Luna)
Design Team - UX/UI design (Luna, Max, Eli)
Research Team - User research (Luna, Amy, Mira)
Marketing Teams
Marketing Team - Growth and campaigns (Mira, Clara, Eli)
Content Team - Content creation (Clara, Max, Eli)
Growth Team - Growth hacking (Mira, Alex, Jordan)
Operations Teams
Operations Team - Business operations (Taylor, Amy, Finn)
Finance Team - Financial planning (Finn, Amy, Taylor)
Support Team - Customer support (Support agents)
TypeScript SDK Example
import { $ } from 'sdk.do'
// List teams
const teams = await $.Team.list({
category: 'engineering',
status: 'available',
})
// Get team details
const engineeringTeam = await $.Team.get('team_engineering')
// Create custom team
const customTeam = await $.Team.create({
name: 'Mobile Dev Team',
description: 'Specialized mobile development',
category: 'engineering',
members: [
{ agentId: 'tom', role: 'Mobile Developer', lead: true },
{ agentId: 'luna', role: 'UX Designer' },
{ agentId: 'quinn', role: 'QA Engineer' },
],
})
// Assign task to team
const project = await $.Team.assign({
teamId: 'team_engineering',
task: 'Build SaaS analytics platform',
requirements: {
features: ['Real-time data', 'Dashboards'],
stack: 'React, Node.js, PostgreSQL',
timeline: '8 weeks',
},
priority: 'high',
})
// Update team
await $.Team.update('team_custom_abc123', {
members: [
{ agentId: 'tom', role: 'Lead Developer', lead: true },
{ agentId: 'luna', role: 'Designer' },
{ agentId: 'quinn', role: 'QA' },
{ agentId: 'sam', role: 'Security' },
],
})
// Delete team
await $.Team.delete('team_custom_abc123')Python SDK Example
from do_sdk import Team
# List teams
teams = Team.list(category='engineering', status='available')
# Get team details
engineering_team = Team.get('team_engineering')
# Create custom team
custom_team = Team.create(
name='Mobile Dev Team',
description='Specialized mobile development',
category='engineering',
members=[
{'agentId': 'tom', 'role': 'Mobile Developer', 'lead': True},
{'agentId': 'luna', 'role': 'UX Designer'},
{'agentId': 'quinn', 'role': 'QA Engineer'}
]
)
# Assign task to team
project = Team.assign(
team_id='team_engineering',
task='Build SaaS analytics platform',
requirements={
'features': ['Real-time data', 'Dashboards'],
'stack': 'React, Node.js, PostgreSQL',
'timeline': '8 weeks'
},
priority='high'
)CLI Example
# List teams
do team list --category engineering
# Get team details
do team get team_engineering
# Create custom team
do team create "Mobile Dev Team" \
--members tom:lead,luna,quinn \
--category engineering
# Assign task
do team assign team_engineering "Build SaaS platform" \
--requirements requirements.json \
--priority high
# Update team
do team update team_custom_abc123 \
--add-member sam:security
# Delete team
do team delete team_custom_abc123Best Practices
1. Choose the Right Team
Match team capabilities to project requirements:
// Good: Engineering team for full-stack project
await $.Team.assign({
teamId: 'team_engineering',
task: 'Build web application',
})
// Good: Product team for strategy work
await $.Team.assign({
teamId: 'team_product',
task: 'Product roadmap planning',
})2. Provide Clear Requirements
Detailed requirements help teams plan effectively:
await $.Team.assign({
teamId: 'team_engineering',
task: 'Build SaaS platform',
requirements: {
features: ['Feature 1', 'Feature 2'],
stack: 'React, Node.js',
scale: '10k users',
timeline: '8 weeks',
mustHave: ['Security', 'Performance'],
niceToHave: ['Analytics', 'Notifications'],
},
})3. Balance Team Size
Optimal team size is 3-7 members:
// Good: 5-person balanced team
const team = await $.Team.create({
name: 'Full Stack Team',
members: [
{ agentId: 'cody', role: 'Architect', lead: true },
{ agentId: 'tom', role: 'Backend' },
{ agentId: 'rae', role: 'Frontend' },
{ agentId: 'quinn', role: 'QA' },
{ agentId: 'sam', role: 'Security' },
],
})
// Avoid: Too large (coordination overhead)
// Avoid: Too small (limited capabilities)4. Monitor Progress
Track team progress through project API:
const project = await $.Team.assign({ teamId: '...', task: '...' })
// Check progress periodically
const status = await $.Project.get(project.projectId)
console.log(`Progress: ${status.progress}%`)
console.log(`Phase: ${status.currentPhase}`)Related Documentation
- Agents API Overview - Complete API overview
- Named Agents - Individual agents
- Tasks API - Task management
- Workflows API - Workflow orchestration
- Projects API - Project tracking
Support
- Documentation - docs.do
- API Status - status.do
- Community - Discord
- Support - support@do