Implement a stored plan after its existing readiness checks
curl --request POST \
--url https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/implementation \
--header 'Content-Type: application/json' \
--header 'x-coderabbitai-api-key: <api-key>' \
--data '
{
"version": 1,
"client_operation_id": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
'import requests
url = "https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/implementation"
payload = {
"version": 1,
"client_operation_id": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
headers = {
"x-coderabbitai-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-coderabbitai-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: 1,
client_operation_id: '<string>',
org_id: '<string>',
org_name: '<string>'
})
};
fetch('https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/implementation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"task_id": "<string>",
"accepted": true
}{
"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
}
}Implement a stored plan after its existing readiness checks
Queues implementation of the current stored plan version after native readiness and permission checks. Open Plan comments must be resolved or the plan revised first. Acceptance does not mean implementation has completed; read GET /code/tasks/ for status and GET /code/tasks//turns for execution results.
POST
/
v1
/
code
/
tasks
/
{task_id}
/
plan
/
implementation
Implement a stored plan after its existing readiness checks
curl --request POST \
--url https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/implementation \
--header 'Content-Type: application/json' \
--header 'x-coderabbitai-api-key: <api-key>' \
--data '
{
"version": 1,
"client_operation_id": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
'import requests
url = "https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/implementation"
payload = {
"version": 1,
"client_operation_id": "<string>",
"org_id": "<string>",
"org_name": "<string>"
}
headers = {
"x-coderabbitai-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-coderabbitai-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
version: 1,
client_operation_id: '<string>',
org_id: '<string>',
org_name: '<string>'
})
};
fetch('https://api.coderabbit.ai/v1/code/tasks/{task_id}/plan/implementation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"task_id": "<string>",
"accepted": true
}{
"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 "/code/tasks/$TASK_ID/plan/implementation" --input request.json
An agent connected to the CodeRabbit MCP server runs this operation as the
implement_code_task_plan tool. The connection selects the organization, so the arguments have no org_id or org_name.{
"method": "tools/call",
"params": {
"name": "implement_code_task_plan",
"arguments": {
"task_id": "<task_id>",
"version": 1,
"client_operation_id": "<client_operation_id>"
}
}
}
Authorizations
See Authentication for the key types and where to create a key.
Body
application/json
Organization 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?