RapidStack
API Reference

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=10

DELETE /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
  }
}
CodeStatusDescription
TASK_NOT_FOUND404Task does not exist
AGENT_NOT_FOUND404Agent does not exist
TASK_TIMEOUT408Task exceeded TTL
QUEUE_FULL429Task queue at capacity

© 2026 Shell Technology. All rights reserved.