# Send follow-up message (/api/agent/v2/send-message)

<!-- agent-signals: reading_time_min: 3 · est_tokens: 1348 · updated: 2026-07-30 -->
Related: [Create agent job](/api/agent/v2/create-agent-job.md), [Get agent job](/api/agent/v2/get-agent-job.md), [Static export](/api/static-export/overview.md)

Send a follow-up instruction to an existing agent job. The agent processes the message asynchronously. Poll the [get agent job](/api/agent/v2/get-agent-job) endpoint to track progress.

## Rate limits [#rate-limits]

* 100 uses per Mintlify project per hour

## Usage [#usage]

```bash
curl -X POST https://api.mintlify.com/v2/agent/{projectId}/job/{id}/message \
  -H "Authorization: Bearer mint_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Also add error handling examples to the quickstart guide"}'
```

`POST /v2/agent/{projectId}/job/{id}/message`

Sends a follow-up message to an existing agent job. The message is processed asynchronously — poll the get job endpoint to track progress.

Authenticate with an admin API key.

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "name": "projectId",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "Your project ID. Can be copied from the [API keys](https://app.mintlify.com/settings/organization/api-keys) page in your dashboard."
    },
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      },
      "description": "The unique identifier of the agent job to send a message to."
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "required": [
            "prompt"
          ],
          "properties": {
            "prompt": {
              "type": "string",
              "minLength": 1,
              "description": "The follow-up instruction for the agent."
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Message sent successfully",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier for the agent job."
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "completed",
                  "archived",
                  "failed"
                ],
                "description": "Current status of the job. `active` — the agent is currently processing the prompt. `completed` — the agent finished successfully and a PR may have been created (check `prLink`). `archived` — the job has been archived. `failed` — the agent encountered an unrecoverable error. Poll until status is `completed`, `archived`, or `failed`."
              },
              "source": {
                "type": "object",
                "description": "Source repository information.",
                "properties": {
                  "repository": {
                    "type": "string",
                    "description": "Full URL of the GitHub repository."
                  },
                  "ref": {
                    "type": "string",
                    "description": "Git branch the agent is working on.",
                    "nullable": true
                  }
                }
              },
              "model": {
                "type": "string",
                "description": "The AI model used for this job."
              },
              "prLink": {
                "type": "string",
                "format": "uri",
                "example": "https://github.com/org/repo/pull/123",
                "description": "GitHub pull request URL created by the agent. `null` while the job is still `active` or if no files were changed. Populated once the agent successfully creates a PR.",
                "nullable": true
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the job was created."
              },
              "archivedAt": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp when the job was archived.",
                "nullable": true
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "Invalid request",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Error message."
              }
            }
          }
        }
      }
    },
    "404": {
      "description": "Job not found",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Error message."
              }
            }
          }
        }
      }
    },
    "429": {
      "description": "Rate limit exceeded",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "error": {
                "type": "string",
                "description": "Error message."
              }
            }
          }
        }
      }
    }
  }
}
```
