---
title: "Get task details with logs and attachments"
method: GET
path: "/api/tasks/{id}"
tags: ["Tasks"]
---

# Get task details with logs and attachments

`GET /api/tasks/{id}`

Returns the full `AgentTask` row decorated with `logs` (capped by `logsLimit`) and `attachments` (pointer-based artifacts stored on the task, ordered by `created_at`).

## Path parameters

- `id` string, required

## Query parameters

- `logsLimit` integer

## Response `200`

Task with logs and attachments

- object
  - `id` string, uuid, required
  - `key` string, required — Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.
  - `agentId` string, nullable, required
  - `creatorAgentId` string
  - `task` string, required
  - `title` string
  - `status` 'backlog' | 'unassigned' | 'offered' | 'reviewing' | 'pending' | 'in_progress' | 'paused' | 'completed' | 'failed' | 'cancelled' | 'superseded', required
  - `source` 'mcp' | 'slack' | 'api' | 'ui' | 'github' | 'gitlab' | 'agentmail' | 'system' | 'schedule' | 'workflow' | 'linear' | 'jira'
  - `taskType` string
  - `tags` string[]
  - `priority` integer
  - `dependsOn` string[]
  - `offeredTo` string
  - `offeredAt` string, date-time
  - `acceptedAt` string, date-time
  - `rejectionReason` string
  - `createdAt` string, date-time, required
  - `lastUpdatedAt` string, date-time, required
  - `finishedAt` string, date-time
  - `notifiedAt` string, date-time
  - `failureReason` string
  - `output` string
  - `progress` string
  - `slackChannelId` string
  - `slackThreadTs` string
  - `slackTriggerMessageTs` string
  - `slackUserId` string
  - `slackReplySent` boolean
  - `slackProgressMessageTs` string
  - `slackTreeRootMessageTs` string
  - `vcsProvider` 'github' | 'gitlab'
  - `vcsRepo` string
  - `vcsEventType` string
  - `vcsNumber` integer
  - `vcsCommentId` integer
  - `vcsAuthor` string
  - `vcsUrl` string
  - `vcsInstallationId` integer
  - `vcsNodeId` string
  - `agentmailInboxId` string
  - `agentmailMessageId` string
  - `agentmailThreadId` string
  - `mentionMessageId` string
  - `mentionChannelId` string
  - `dir` string
  - `parentTaskId` string
  - `claudeSessionId` string
  - `model` string
  - `modelTier` 'smol' | 'regular' | 'smart' | 'ultra'
  - `effort` 'off' | 'low' | 'medium' | 'high' | 'xhigh' | 'max'
  - `scheduleId` string
  - `workflowRunId` string, uuid, nullable
  - `workflowRunStepId` string, uuid, nullable
  - `contextKey` string
  - `outputSchema` object
  - `followUpConfig` FollowUpConfig
    - `disabled` boolean
    - `onCompleted` string
    - `onFailed` string
  - `wasPaused` boolean
  - `compactionCount` integer
  - `peakContextPercent` number
  - `peakContextTokens` integer
  - `contextWindowSize` integer
  - `credentialKeySuffix` string
  - `credentialKeyType` string
  - `requestedByUserId` string
  - `swarmVersion` string
  - `provider` 'claude' | 'codex' | 'pi' | 'devin' | 'claude-managed' | 'opencode'
  - `providerMeta` object
  - `harnessVariant` string
  - `harnessVariantMeta` object
  - `totalCostUsd` number
  - `routingAffinity` RoutingAffinity
    - `sourceAgentId` string
    - `role` string
    - `harnessProvider` 'claude' | 'codex' | 'pi' | 'devin' | 'claude-managed' | 'opencode'
    - `capabilities` string[]
  - `isLeadTask` boolean, required
  - `supportedSteerModes` string[], required
  - `logs` AgentLog[], required
    - `id` string, uuid, required
    - `eventType` 'agent_joined' | 'agent_status_change' | 'agent_left' | 'task_created' | 'task_status_change' | 'task_progress' | 'task_steering' | 'task_offered' | 'task_accepted' | 'task_rejected' | 'task_claimed' | 'task_claim_rejected_affinity' | 'task_released' | 'channel_message' | 'service_registered' | 'service_unregistered' | 'service_status_change' | 'budget.upserted' | 'budget.deleted' | 'pricing.inserted' | 'pricing.deleted' | 'pricing.refresh' | 'pricing.refresh.failed' | 'task_superseded', required
    - `agentId` string
    - `taskId` string
    - `oldValue` string
    - `newValue` string
    - `metadata` string
    - `createdAt` string, date-time, required
  - `attachments` TaskAttachment[], required
    - `id` string, uuid, required
    - `taskId` string, uuid, required
    - `agentId` string, nullable, required
    - `name` string, required
    - `kind` 'agent-fs' | 'url' | 'shared-fs' | 'page', required
    - `url` string
    - `path` string
    - `pageId` string
    - `providerId` string
    - `providerKey` string
    - `capabilities` object
    - `orgId` string
    - `driveId` string
    - `mimeType` string
    - `sizeBytes` integer
    - `sha256` string
    - `intent` string
    - `description` string
    - `isPrimary` boolean
    - `createdAt` string, date-time, required
    - `createdBy` string
    - `updatedBy` string

## Other responses

- `404` — Task not found

---

[API](https://skmtc.net/desplega-ai/apis/agent-swarm-api.md) · [All operations](https://skmtc.net/desplega-ai/apis/agent-swarm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/desplega-ai/agent-swarm-api/versions/0375890be8c4/schema)
