---
title: "blog.review.ai_editor · OpenVibe.Services"
canonical: "https://openvibe.services/docs/capabilities/blog.review.ai_editor"
updated: null
---

# blog.review.ai\_editor · OpenVibe.Services

HTML: [blog.review.ai\_editor · OpenVibe.Services](https://openvibe.services/docs/capabilities/blog.review.ai_editor)

# `blog.review.ai_editor`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

Not grantable to apps (active, first-party).

Record the editorial queue's AI editor decision (approved or rejected) on a post revision, as the first-party service principal acting as itself (a svc: principal with no X-OV-Subject). This is never a person's review: an approval lets an AI draft publish through the existing publish action and the post says "Checked by OpenVibe's AI editor" with its date, never "Reviewed by a person". Granted only to the orchestrator's service principal.

- Owner: blog (token audience `openvibe.blog`)
- Version: 1.0
- Status: active
- Visibility: first-party
- Resource constraints: none
- Quota class: blog-write
- Permissions: blog:write
- Events: blog.post.updated, blog.index\_document.upserted, blog.index\_document.deleted
- Implemented by: - `POST /api/v1/posts/:id/reviews`

[These routes in the API explorer](/docs/api/blog#cap-blog.review.ai_editor)
