Replace your Plan comment text
curl --request PUT \
--url https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/comments/{comment_id} \
--header 'Content-Type: application/json' \
--header 'x-coderabbitai-api-key: <api-key>' \
--data '
{
"version": 1,
"sha256": "<string>",
"text": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
'import requests
url = "https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/comments/{comment_id}"
payload = {
"version": 1,
"sha256": "<string>",
"text": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
headers = {
"x-coderabbitai-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-coderabbitai-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: 1,
sha256: '<string>',
text: '<string>',
org_id: '<string>',
org_name: '<string>'
})
};
fetch('https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/comments/{comment_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"task_id": "<string>",
"version": 1,
"sha256": "<string>",
"revision": 1,
"threads": [
{
"id": "<string>",
"status": "open",
"location": {
"start_offset": 1,
"end_offset": 1,
"quote": "<string>"
},
"comments": [
{
"id": "<string>",
"text": "<string>",
"author": {
"user_id": "<string>",
"display_name": "<string>",
"handle": "<string>",
"avatar_url": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>"
}
]
}
]
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "forbidden",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "not_found",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "head_changed",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "precondition_failed",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "payload_too_large",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "internal_error",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "unavailable",
"message": "<string>",
"retry_after": 1
}
}Replace your Plan comment text
Only the original author may replace a comment. Supply the complete text; existing serialized mention tokens in that text are retained, and removed tokens remove mentions. Uses the current plan version and sha256. Does not change the thread status or plan approval.
PUT
/
v1
/
code
/
tasks
/
{task_id}
/
plan
/
comments
/
{comment_id}
Replace your Plan comment text
curl --request PUT \
--url https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/comments/{comment_id} \
--header 'Content-Type: application/json' \
--header 'x-coderabbitai-api-key: <api-key>' \
--data '
{
"version": 1,
"sha256": "<string>",
"text": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
'import requests
url = "https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/comments/{comment_id}"
payload = {
"version": 1,
"sha256": "<string>",
"text": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
headers = {
"x-coderabbitai-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-coderabbitai-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: 1,
sha256: '<string>',
text: '<string>',
org_id: '<string>',
org_name: '<string>'
})
};
fetch('https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/comments/{comment_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"task_id": "<string>",
"version": 1,
"sha256": "<string>",
"revision": 1,
"threads": [
{
"id": "<string>",
"status": "open",
"location": {
"start_offset": 1,
"end_offset": 1,
"quote": "<string>"
},
"comments": [
{
"id": "<string>",
"text": "<string>",
"author": {
"user_id": "<string>",
"display_name": "<string>",
"handle": "<string>",
"avatar_url": "<string>"
},
"created_at": "<string>",
"updated_at": "<string>"
}
]
}
]
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "unauthenticated",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "forbidden",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "not_found",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "head_changed",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "precondition_failed",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "payload_too_large",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "internal_error",
"message": "<string>",
"retry_after": 1
}
}{
"error": {
"code": "unavailable",
"message": "<string>",
"retry_after": 1
}
}- CLI Tool
- MCP Server
coderabbit api request -X PUT "/code/tasks/$TASK_ID/plan/comments/$COMMENT_ID" --input request.json
An agent connected to the CodeRabbit MCP server runs this operation as the
replace_code_task_plan_comment tool. The connection selects the organization, so the arguments have no org_id or org_name.{
"method": "tools/call",
"params": {
"name": "replace_code_task_plan_comment",
"arguments": {
"task_id": "<task_id>",
"comment_id": "<comment_id>",
"version": 1,
"sha256": "<sha256>",
"text": "<text>"
}
}
}
Authorizations
See Authentication for the key types and where to create a key.
Path Parameters
Body
application/json
Required string length:
1 - 65536Organization for a workspace key: the Git-provider organization ID (scope.provider_organization_id) or the CodeRabbit organization ID (scope.id, or id from list organizations). Supply either org_id or org_name, never both. Omit for organization keys and MCP connections.
Minimum string length:
1Was this page helpful?