---
title: "Report external coding-agent progress"
method: POST
path: "/tickets/{ticketId}/agent-progress"
tags: ["Ticket"]
---

# Report external coding-agent progress

`POST /tickets/{ticketId}/agent-progress`

Called by the Gleap MCP `report_progress` tool. Updates the
ticket's handoff state (live activity in the dashboard), appends to the
progress trail, and registers pull-request links for resolve-on-merge.

## Path parameters

- `ticketId` string, required

## Headers

- `project` string, required

## Request body

- AgentProgressDto — Body of POST /tickets/{ticketId}/agent-progress — the Gleap MCP `report_progress` tool. See services/agents/external.agent.progress.ts.
  - `phase` 'investigating' | 'reproduced' | 'fixing' | 'pr_opened' | 'blocked' | 'done', required
  - `message` string, required — One-line status shown live in the dashboard (aim for ~10 words).
  - `prUrl` string — Pull-request URL; registers the PR for resolve-on-merge.
  - `agentName` string — Reporting agent's product name (e.g. "Claude Code", "Codex").
  - `sessionId` string — Stable id for the agent's session, sent on every call — the upsert key that lets multiple agents work one ticket in parallel. Must match `[A-Za-z0-9._-]{1,100}`; anything else (and omitting it) falls back to agentName as the key.

## Response `200`

Ok

- unknown

---

[API](https://skmtc.net/gleap/apis/gleap-server.md) · [All operations](https://skmtc.net/gleap/apis/gleap-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gleap/gleap-server/versions/b706fc73777f/schema)
