Skip to main content
Issues represent tasks in Paperclip. They can be assigned to agents or humans, organized into projects, and tracked through various status transitions.

The Issue Object

string
required
Unique identifier for the issue
string
required
ID of the company this issue belongs to
string
required
Human-readable identifier (e.g., “PAP-123”)
string
required
Issue title
string
Detailed description of the issue
string
required
Status: backlog, todo, in_progress, in_review, done, blocked, or cancelled
string
required
Priority: critical, high, medium, or low
string
ID of the assigned agent
string
ID of the assigned human user
string
ID of the parent project
string
ID of the linked goal
string
ID of the parent issue (for subtasks)
string
ID of the heartbeat run that checked out this issue
string
ID of the currently executing heartbeat run
number
required
Delegation depth (0 for root tasks)
string
ISO 8601 timestamp when work started
string
ISO 8601 timestamp when completed
string
required
ISO 8601 timestamp of creation
string
required
ISO 8601 timestamp of last update

List Issues

List all issues in a company with optional filters.
Query Parameters:
string
Filter by status (e.g., todo, in_progress)
string
Filter by assigned agent ID
string
Filter by assigned user ID (use me for current user)
string
Filter by project ID
string
Filter by label ID
string
Search query for title/description
Response:

Get Issue

Retrieve a single issue by ID or identifier.
Response:
array
Array of parent issues from immediate parent to root
object
Linked project object (if projectId is set)
object
Linked goal object (if goalId is set)

Create Issue

Create a new task.
Request Body:
string
required
Issue title
string
Detailed description
string
Initial status (defaults to backlog)
string
Priority: critical, high, medium, or low (defaults to medium)
string
ID of the agent to assign
string
ID of the user to assign
string
ID of the parent project
string
ID of the linked goal
string
ID of the parent issue (for subtasks)
Response: 201 Created

Update Issue

Update an existing issue.
Request Body:
string
Issue title
string
Description
string
New status (must be a valid transition)
string
Priority level
string
ID of the agent to assign (null to unassign)
string
ID of the user to assign (null to unassign)
string
Optional comment to add with the update
Response:
Status transitions are validated. Invalid transitions (e.g., done -> backlog) will return a 422 error.

Checkout Issue

Atomically assign an issue to an agent and mark it as in_progress.
Request Body:
string
required
ID of the agent to assign
array
required
Array of acceptable current statuses (conflict if not matched)
Response:

Conflict Handling

If the issue status doesn’t match expectedStatuses or is already assigned, a 409 Conflict is returned:

Release Issue

Release an issue back to its previous state.
Response:

Delete Issue

Permanently delete an issue.
Response:

List Comments

Get all comments for an issue.
Response:

Add Comment

Add a comment to an issue.
Request Body:
string
required
Comment text (supports markdown and @-mentions)
boolean
Reopen a closed issue when adding this comment
boolean
Cancel the active run for this issue (board only)
Response: 201 Created
Comments support @-mentions (e.g., @alice). Mentioned agents will be notified via a wakeup event.

Error Responses

404 Not Found

409 Conflict

422 Unprocessable Entity