BrenzuriStart free
Changelog
About this documentation

Changelog

The developer surface and these pages, newest first.

On this page

7 October 2026#

  • Language versions. One brief writes an article and any number of language versions of it, in 22 languages, from the same checked claims. A version is an article of its own with its own approval and label, and arrives on a site as its own draft. language on a brief takes en+es+de, the first code being the article; an unsupported, repeated or empty code is 422 invalid_language and the 501 not_built_yet for + is gone. Each version holds 1 more credit, listed in the estimate’s parts; one that is skipped, fails or comes back empty is released, with one refunded event with reason: "unused" before done. See Write in several languages.
  • `POST /articles/{id}/languages` adds language versions to a finished article, and the MCP tool article.add_languages does the same. A key may call 36 routes and an agent has 8 tools. Articles gain primaryArticleId, languageVersions and addingLanguages, jobs gain the steps write-<code>, seo-<code> and qa-<code>, and sources for a job that adds languages, and 422 not_primary and invalid_language are new. POST /articles and the add route also answer steps.
  • Delivery of a language version. A custom site receives language for an article that has versions and for each of them, and primaryArticleId on a version. A WordPress post carries lang (bs for BHS) in the same cases. A version is a draft like everything else, including a version of a Beat’s article, and has no picture.
  • Corrections to these pages. GET /articles takes a language filter. GET /jobs/{id} lists the language steps.
  • A rewrite never leaves a post live. A post that an earlier automatic delivery published is sent back to draft by a rewrite like any other: every update to WordPress sends status: draft, with no exception.
  • A retry that cannot load what it sends leaves the delivery held with its last reason. The connection, the earlier post, the illustration and the blog payload are read before the delivery is marked as being sent again, so a failure there is no longer reported as “it may have arrived”.
  • Stored notes lose raw error text. A note “Delivered without the illustration: the media upload failed (…)” that carried the client’s own error text now reads “…failed (the request failed).”
  • Corrections to these pages. A retry uses the connection’s policy at the time of the retry (site deliveries are always drafts). A secret you type has whitespace and line breaks at either end removed.

6 October 2026#

  • Developer documentation published at /docs: concepts, guides for the REST API, MCP, webhooks, exports, illustrations, WordPress and custom-site delivery, and a reference for authentication, errors, rate limits, objects and all 35 routes.
  • `GET /jobs/{id}` reads a job’s status, step and error. A key or an agent sees article jobs and site reads. See Job status endpoint.
  • `GET /sites/{siteID}/connections` lists the connection that delivers a site’s articles, so a key can find the connectionId for POST /articles/{id}/deliver. See Site connections endpoint.
  • House-style illustrations. An article can carry an AI-generated illustration in the style of its site. GET /articles/{id}/illustration reads it; POST /articles/{id}/illustration/regenerate asks for a new one with the edit scope, free and limited to 5 a day per article, and answers 409 no_illustration for an article that has never had one. GET /sites/{siteID}/house-style and GET …/house-style/images/{imageID} read the style. Articles gain an illustration object and jobs gain an optional illustrate step.
  • Delivery to a custom site carries the illustration inside the signed body, adds the headers X-Brenzuri-Event: article.delivered and X-Brenzuri-Delivery, and the same id as deliveryId inside the signed body. Brenzuri retries 429 and 5xx, and a request that could not be sent (no address, connection refused, no connection in 10 seconds); a timeout after the connection was made waits for a person. See Deliver to a custom site.
  • Delivery to WordPress sets the article’s illustration as the post’s featured image, with alt text and a caption that says it is AI-generated. The picture is uploaded attached to the draft under the file name illustration- and eight characters, never one made from the title. An update keeps a featured image that someone set by hand in WordPress. See Deliver to WordPress.
  • The approval policy of a connection is described as what it is: a draft that a delivery started by hand is marked awaiting approval on. No policy publishes.
  • New version label Illustration regenerated, naming the key or agent.
  • Markdown, PDF and DOCX exports carry the illustration’s label and caption; the PDF carries the picture.
  • A key may call 35 routes.
  • Delivery never publishes. The automatic publishing policy is retired. A connection that still carried it now delivers a draft, and Brenzuri sends the status publish to no one. A rewrite of an approved article updates the same WordPress post and sets it back to draft; publish it again in WordPress.
  • A delivery whose last attempt did not finish is held for a person. When Brenzuri cannot tell whether a delivery arrived, it no longer sends it again by itself, because that could make a second post. The delivery log says “The last attempt did not finish; it may have arrived. Check before retrying.”
  • Delivery reasons never name an address. Entries that began “destination unreachable” and could show one now read “the request failed”.
  • Corrections to these pages. Awaiting approval changes the status of a delivery a person starts by hand only. A secret Brenzuri makes starts whsec_ and one you type is used as typed. A WordPress draft’s picture is not listed publicly, but anyone with its address can open the file. Daily caps are read from the credit ledger, not counted in memory. A key can read one site’s connection. The PHP webhook receiver refuses a body that is not an object and an event id that is not evt_ and a UUID.
  • Earlier changes to the developer surface are not recorded here.