RapidStack API Reference
Base URL: https://rapidstack.shellapps.com/api/v1/
All endpoints require authentication via ShellApps ID.
Tasks
POST /tasks
Create and queue a new task.
// Request
{
"type": "code-review",
"input": {
"prUrl": "https://github.com/shellapps/experience/pull/42"
},
"tools": ["github.read-pr", "github.create-review"],
"priority": 1,
"ttl": 300
}
// Response 201
{
"id": "task_abc123",
"status": "queued",
"priority": 1,
"createdAt": "2025-03-01T10:00:00Z"
}GET /tasks/:taskId
Get task status and output.
// Response 200
{
"id": "task_abc123",
"type": "code-review",
"status": "completed",
"agentId": "agent_xyz",
"input": { "prUrl": "..." },
"output": { "review": "LGTM", "comments": [] },
"startedAt": "2025-03-01T10:00:01Z",
"completedAt": "2025-03-01T10:00:15Z"
}GET /tasks
List tasks. Supports filtering by status.
GET /tasks?status=running&limit=10DELETE /tasks/:taskId
Cancel a queued or running task.
Agents
GET /agents
List active agents.
// Response 200
{
"agents": [
{
"id": "agent_xyz",
"type": "code-review",
"status": "running",
"taskId": "task_abc123",
"createdAt": "2025-03-01T10:00:01Z"
}
]
}GET /agents/:agentId
Get agent details.
DELETE /agents/:agentId
Terminate an agent.
Workflows
POST /workflows
Create a multi-step workflow.
// Request
{
"name": "deploy-and-notify",
"steps": [
{
"name": "run-tests",
"taskType": "e2e-test",
"tools": ["e2e.run-suite"],
"input": { "suite": "smoke" }
},
{
"name": "deploy",
"taskType": "deployment",
"tools": ["github.create-release"],
"dependsOn": ["run-tests"]
},
{
"name": "notify",
"taskType": "notification",
"tools": ["slack.send-message"],
"dependsOn": ["deploy"],
"input": { "channel": "#releases" }
}
]
}
// Response 201
{
"id": "workflow_abc",
"name": "deploy-and-notify",
"status": "running",
"steps": [
{ "name": "run-tests", "status": "running" },
{ "name": "deploy", "status": "pending" },
{ "name": "notify", "status": "pending" }
]
}GET /workflows/:workflowId
Get workflow status.
DELETE /workflows/:workflowId
Cancel a workflow and all its pending tasks.
Error Responses
{
"error": {
"code": "TASK_NOT_FOUND",
"message": "Task 'task_abc123' not found",
"status": 404
}
}| Code | Status | Description |
|---|---|---|
TASK_NOT_FOUND | 404 | Task does not exist |
AGENT_NOT_FOUND | 404 | Agent does not exist |
TASK_TIMEOUT | 408 | Task exceeded TTL |
QUEUE_FULL | 429 | Task queue at capacity |