> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gleap.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Report external coding-agent progress



## OpenAPI

````yaml https://api.gleap.io/api-docs.json post /tickets/{ticketId}/agent-progress
openapi: 3.0.0
info:
  title: gleap-server
  version: 14.0.0
  contact: {}
servers:
  - url: https://api.gleap.io/v3
security: []
paths:
  /tickets/{ticketId}/agent-progress:
    post:
      tags:
        - Ticket
      summary: Report external coding-agent progress
      operationId: ReportAgentProgress
      parameters:
        - in: path
          name: ticketId
          required: true
          schema:
            type: string
        - in: header
          name: project
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentProgressDto'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema: {}
      security:
        - jwt: []
components:
  schemas:
    AgentProgressDto:
      description: |-
        Body of POST /tickets/{ticketId}/agent-progress — the Gleap MCP
        `report_progress` tool. See services/agents/external.agent.progress.ts.
      properties:
        phase:
          $ref: '#/components/schemas/ExternalAgentPhaseDto'
        message:
          type: string
          description: One-line status shown live in the dashboard (aim for ~10 words).
        prUrl:
          type: string
          description: Pull-request URL; registers the PR for resolve-on-merge.
        agentName:
          type: string
          description: Reporting agent's product name (e.g. "Claude Code", "Codex").
        sessionId:
          type: string
          description: |-
            Stable id for the agent's session, sent on every call — the upsert
            key that lets multiple agents work one ticket in parallel. Falls
            back to agentName when omitted.
      required:
        - phase
        - message
      type: object
      additionalProperties: false
    ExternalAgentPhaseDto:
      type: string
      enum:
        - investigating
        - reproduced
        - fixing
        - pr_opened
        - blocked
        - done
  securitySchemes:
    jwt:
      type: http
      scheme: bearer
      bearerFormat: JWT

````