Skip to main content
POST
/
v1
/
threads
Create and start thread
curl --request POST \
  --url https://capy.ai/api/v1/threads \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "projectId": "<string>",
  "prompt": "<string>",
  "impersonateUserEmail": "jsmith@example.com",
  "repos": [
    {
      "repoFullName": "<string>",
      "branch": "<string>"
    }
  ],
  "browserSnapshotIds": [
    "<string>"
  ],
  "attachmentUrls": [
    "<string>"
  ],
  "tags": [
    "<string>"
  ],
  "reliabilityInvestigationId": "<string>"
}
'
{
  "id": "<string>",
  "projectId": "<string>",
  "title": "<string>",
  "waitingOn": [],
  "blockedOn": [],
  "pendingWakeups": 4503599627370495,
  "participants": [
    {
      "userId": "<string>",
      "firstParticipatedAt": "<string>",
      "lastParticipatedAt": "<string>"
    }
  ],
  "tags": [
    {
      "name": "<string>"
    }
  ],
  "createdAt": "<string>",
  "slack": {
    "teamId": "<string>",
    "channelId": "<string>",
    "threadTs": "<string>",
    "url": "<string>"
  }
}

Authorizations

Authorization
string
header
required

API token (capy_xxxx). Generate at capy.ai/settings/tokens

Body

application/json
projectId
string
required
prompt
string
required
Minimum string length: 1
impersonateUserEmail
string<email>
Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
model
enum<string>
Available options:
claude-opus-4-8,
claude-opus-4-7,
claude-opus-4-6,
claude-opus-4-5,
claude-sonnet-4-6,
claude-haiku-4-5,
gpt-5.5,
gpt-5.5-pro,
gpt-5.4,
gpt-5.4-mini,
gpt-5.3-codex,
gpt-5.3-codex-spark,
gemini-3.1-pro-preview,
gemini-3-flash-preview,
grok-4-1-fast,
glm-5.2,
glm-5.1,
glm-5v-turbo,
glm-5,
deepseek-v4-pro,
glm-5-turbo,
glm-4.7,
kimi-k2.7-code,
kimi-k2.6,
qwen3-coder,
claude-fable-5
speed
enum<string>
Available options:
fast,
standard
reasoning
object
buildModel
enum<string>
Available options:
claude-opus-4-8,
claude-opus-4-7,
claude-opus-4-6,
claude-opus-4-5,
claude-sonnet-4-6,
claude-haiku-4-5,
gpt-5.5,
gpt-5.5-pro,
gpt-5.4,
gpt-5.4-mini,
gpt-5.3-codex,
gpt-5.3-codex-spark,
gemini-3.1-pro-preview,
gemini-3-flash-preview,
grok-4-1-fast,
glm-5.2,
glm-5.1,
glm-5v-turbo,
glm-5,
deepseek-v4-pro,
glm-5-turbo,
glm-4.7,
kimi-k2.7-code,
kimi-k2.6,
qwen3-coder,
claude-fable-5
buildSpeed
enum<string>
Available options:
fast,
standard
buildReasoning
object
repos
object[]
browserSnapshotIds
string[]
attachmentUrls
string<uri>[]
tags
string[]
Maximum array length: 20
Required string length: 1 - 64
Pattern: ^[a-z0-9][a-z0-9_-]{0,63}$
slack
object
reliabilityInvestigationId
string
Pattern: ^rel_[a-f0-9]{40}$

Response

Success

id
string
required
projectId
string
required
title
string | null
required
status
enum<string>
required

Coarse Captain run-loop status retained for compatibility. Prefer runState/waitingOn/blockedOn for completion and waiting UX.

Available options:
active,
idle,
archived
runState
enum<string>
required

Full computed execution state for the agent thread.

Available options:
running,
queued,
waiting,
blocked,
ready,
archived
waitingOn
enum<string>[]
required

Async system dependencies expected to continue without user action.

Available options:
task,
review,
ci,
timer,
worker
blockedOn
enum<string>[]
required

User/integration gates required before progress can continue.

Available options:
auth,
permission
pendingWakeups
integer
required

Pending append-and-resume notifications waiting to be processed.

Required range: 0 <= x <= 9007199254740991
participants
object[]
required
tags
object[]
required
createdAt
string
required
slack
object