Skip to main content
GET
/
v1
/
threads
List threads
curl --request GET \
  --url https://capy.ai/api/v1/threads \
  --header 'Authorization: Bearer <token>'
{
  "items": [
    {
      "id": "<string>",
      "projectId": "<string>",
      "title": "<string>",
      "waitingOn": [],
      "blockedOn": [],
      "pendingWakeups": 4503599627370495,
      "tasks": [
        {
          "id": "<string>",
          "threadIndex": 0,
          "identifier": "<string>",
          "title": "<string>"
        }
      ],
      "participants": [
        {
          "userId": "<string>",
          "firstParticipatedAt": "<string>",
          "lastParticipatedAt": "<string>"
        }
      ],
      "pullRequests": [
        {
          "number": 0,
          "url": "<string>",
          "repoFullName": "<string>",
          "state": "<string>",
          "headRef": "<string>",
          "baseRef": "<string>",
          "draft": true
        }
      ],
      "slackThreads": [
        {
          "teamId": "<string>",
          "channelId": "<string>",
          "threadTs": "<string>",
          "url": "<string>"
        }
      ],
      "tags": [
        {
          "name": "<string>"
        }
      ],
      "createdAt": "<string>",
      "updatedAt": "<string>"
    }
  ],
  "nextCursor": "<string>",
  "hasMore": true
}

Authorizations

Authorization
string
header
required

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

Query Parameters

limit
integer
default:20
Required range: 1 <= x <= 100
cursor
string
projectId
string
required
status
enum<string>
Available options:
active,
idle,
archived
prNumber
integer
Required range: -9007199254740991 <= x <= 9007199254740991
branch
string
slackThreadTs
string
authorId
string

Filter to threads created by this Capy user ID. Mutually exclusive with authorEmail.

Minimum string length: 1
authorEmail
string<email>

Filter to threads created by the organization member with this email address. Returns an empty page if the email does not match an organization member. Mutually exclusive with authorId.

Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
participantId
string

Filter to threads this Capy user ID authored or participated in. Mutually exclusive with participantEmail.

Minimum string length: 1
participantEmail
string<email>

Filter to threads the organization member with this email address authored or participated in. Returns an empty page if the email does not match an organization member. Mutually exclusive with participantId.

Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
origin
enum<string>

Filter by thread origin source.

Available options:
web,
slack,
api,
linear,
automation
prState
enum<string>

Filter by the thread's rolled-up pull request state. Combines with prNumber and branch.

Available options:
open,
merged,
closed,
none
tag
string

Filter to threads with this tag name (lowercase).

Minimum string length: 1
slackChannelId
string

Filter to threads linked to this Slack channel ID (e.g. C0123456789). Combines with slackThreadTs.

Minimum string length: 1
q
string

Free-text search across thread titles and content.

Response

Success

items
object[]
required
nextCursor
string | null
required
hasMore
boolean
required