Skip to main content
POST
Hand the issue off to the team's coding agent

Authorizations

Authorization
string
header
required

A project token (apsio_pt_v0...), which reads exactly one project, or an OAuth access token issued for the API, which reads what its user can. Access tokens issued for Apsio's MCP server are accepted only from the MCP server itself.

Path Parameters

projectId
string
required
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"0192f3a4-0000-7000-8000-00000000a101"

issueId
string
required

The issue id.

Pattern: ^[A-Za-z0-9._:-]{1,128}$

Body

application/json
destination_id
string
required
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$

Response

The handoff.

id
string
required
destination_id
string
required
provider
enum<string>
required
Available options:
github,
linear
state
enum<string>
required

claimed: being opened; opened; failed (error_code).

Available options:
claimed,
opened,
failed
ref
string | null
required

What people call it: #12, ENG-12.

url
string | null
required
error_code
string | null
required
rule_id
string | null
required

The alert rule that handed it off; null from the issue page.

created_by
string | null
required
created_at
string
required

RFC 3339 time in UTC with up to nanosecond precision.

Example:

"2026-10-04T10:15:00.431000000Z"

opened_at
string | null
required

RFC 3339 time in UTC with up to nanosecond precision.

Example:

"2026-10-04T10:15:00.431000000Z"

pull_request
object | null
required

GitHub: the pull request of the same repository that references the issue last, from its timeline (refreshed at most every 10 minutes); null when none, and for Linear.