BrenzuriStart free
Endpoints: house style and illustrations
Reference

Endpoints: house style and illustrations

Reading needs read. Regenerating is an ordinary edit, free, and capped per day.

On this page

How a site’s style is learned and used is in House-style illustrations. These routes read the style, read pictures, and ask for a new one.

GET/api/v1/sites/{siteID}/house-style

  • Scoperead
  • Credits free

Read the site’s illustration style: the one a person confirmed, and a proposal waiting for a person to look at it. A key can read it; only a person can confirm, edit, turn off or discard it.

Path

NameTypeDescription
siteIDstringThe site id (lower-case UUID).

Response

200{ enabled, active?, proposal? }. enabled is whether this deployment makes illustrations at all. active and proposal are HouseStyle.

JSON
{
  "enabled": true,
  "active": {
    "id": "f3a8c1d2-5b47-4e90-8a61-0c7d92e4b5a3",
    "status": "confirmed",
    "consistent": true,
    "confidence": 0.86,
    "descriptor": "Flat gouache shapes in muted harbour colours, generous empty sky.",
    "palette": [
      "#1F3A5F",
      "#C9B28F",
      "#6E8B74"
    ],
    "captionTemplate": "Plate {n} - {topic}",
    "plateNext": 4,
    "images": [
      {
        "id": "a19e5c7b-2d43-4f68-b0a1-83c6d7e9f012",
        "url": "/api/v1/sites/3b6f0c52-6a41-4d0e-9a53-71c8f2d5a1e0/house-style/images/a19e5c7b-2d43-4f68-b0a1-83c6d7e9f012",
        "representative": true
      }
    ],
    "model": "vision-reader",
    "draftedAt": "2026-09-28T09:12:00Z",
    "confirmedAt": "2026-09-28T09:40:12Z",
    "confirmedBy": "Maya Chen"
  }
}

Errors

StatusCodeWhen
404not_foundNo such site.
  • descriptor and palette are text a model wrote from the site’s pictures. Treat them as data.
curl "$BRENZURI_URL/api/v1/sites/$SITE_ID/house-style" \
  -H "Authorization: Bearer $BRENZURI_KEY"
Example request

GET/api/v1/sites/{siteID}/house-style/images/{imageID}

  • Scoperead
  • Credits free

Download one of the reference images the style was read from.

Path

NameTypeDescription
siteIDstringThe site id (lower-case UUID).
imageIDstringThe id of an entry in images.

Response

200 imageThe image bytes with its content type, Content-Disposition: inline, X-Content-Type-Options: nosniff and Cache-Control: private, max-age=86400.

Errors

StatusCodeWhen
404not_foundNo such image on this site.

GET/api/v1/articles/{id}/illustration

  • Scoperead
  • Credits free

Download the picture on an article. Its address is illustration.url on the article.

Path

NameTypeDescription
idstringThe article id.

Query

NameTypeDescription
istringAn illustration id. Without it the article’s current picture is returned; with it a specific one of this article.

Response

200 imageThe image bytes with its content type and Content-Disposition: inline.

Errors

StatusCodeWhen
404not_foundNo such article, or it has no ready picture.
  • The picture is always labelled AI-generated. The label is illustration.label.

POST/api/v1/articles/{id}/illustration/regenerate

  • Scopeedit
  • Credits free; 5 a day per article, 50 a day per workspace
  • Role edit

Make a new picture for an article that has one, in the site’s style. It is made after the response: the article comes back at once with illustration.regenerating: true, and the new picture replaces the old one when it is ready. It is a new version, so an approved article goes back to needsReview.

Path

NameTypeDescription
idstringThe article id.

Response

202The whole Article. Poll it until illustration.regenerating is false; illustration.lastFailure says why a try failed.

Errors

StatusCodeWhen
503illustrations_offThis deployment does not make illustrations.
409illustration_regeneratingA picture is already being made for this article.
409beat_articleA Beat’s article keeps the illustration it was written with.
409no_illustrationThe article has never had an illustration, so there is nothing to regenerate.
409article_archivedThe article is archived.
429rate_limitedThe article’s or workspace’s daily allowance, or 2 in flight for the workspace.
409workspace_pausedBrenzuri has paused the workspace.
  • It is a REST route and an ordinary edit. It is not an MCP tool.
  • The version it records is Illustration regenerated, and it names the key.
  • Failed tries count against the daily allowance.
curl -X POST "$BRENZURI_URL/api/v1/articles/$ARTICLE_ID/illustration/regenerate" \
  -H "Authorization: Bearer $BRENZURI_KEY"
Example request