canonical: https://jentic.com/apis/bruzu.com/bruzu

# Bruzu API

Jentic publishes the only available OpenAPI specification for Bruzu API, keeping it validated and agent-ready. Bruzu is an image generation API that produces dynamic PNG, JPEG, and WebP images from reusable templates or URL query parameters. It is suited to social media graphics, Open Graph cards, banners, and personalised email images, with control over text, fonts, background colours, logos, and element positioning. Image requests can be issued via simple GET URLs for inline embedding or via POST with a JSON body for richer multi-element compositions.

## For AI agents

Generate dynamic social media graphics, Open Graph images, and banners from templates with text, logo, and styling parameters returned as PNG, JPEG, or WebP.

## Scope

Does not handle image hosting, asset CDN, or AI image synthesis from text prompts - use for template- and parameter-driven image rendering only.

## Capabilities

- Render Open Graph and social share images at 1200x630 with custom title text and brand colours
- Compose multi-element graphics with text, logo, and shape primitives positioned by x and y pixel coordinates
- Reuse saved templates by ID and override individual fields per request to produce per-recipient image variants
- Output the same composition as PNG, JPEG, or WebP with adjustable JPEG and WebP quality
- Overlay logos and background images from external URLs onto generated graphics
- List available templates from a Bruzu account to drive automated image pipelines

## Use cases

### Open Graph Image Generation

Generate per-page Open Graph and Twitter card images for blog posts, product pages, and landing pages without designing each one manually. Bruzu accepts the post title, author name, and brand colours as URL parameters and returns a 1200x630 PNG suitable for social sharing previews. Integration takes under an hour because the GET endpoint can be embedded directly in og:image meta tags.

Example prompt: Call generateImageGet with template=blog-og, a.text set to the post title, and b.text set to the author name, then return the resulting PNG URL

### Personalised Marketing Graphics

Produce per-recipient marketing images for email campaigns, referral links, and onboarding flows. Each image can include the recipient's name, a personalised message, and the sender's logo overlaid at fixed coordinates. Bruzu renders the image on demand from a stored template, so a single template drives thousands of personalised variants without manual design work.

Example prompt: POST to / with a JSON body containing elements for the recipient's name, a logo overlay, and a brand background colour, then attach the returned image to an email

### Template-Driven Brand Graphics

List, select, and render images from a Bruzu account's saved templates so non-designers can produce on-brand graphics from a structured catalogue. The /templates endpoint returns each template's ID, dimensions, and preview URL, which an agent can match to a request and then call the generation endpoint with the chosen template ID. Useful for marketing operations, e-commerce listing graphics, and event banners.

Example prompt: Call listTemplates, pick the template whose name matches 'product-card', then call generateImageGet with that template ID and the product name in a.text

### AI Agent Image Composition

Allow an AI agent to assemble images on the fly from natural language by mapping descriptive parameters to Bruzu's element schema. Through Jentic, the agent searches for image generation, loads the JSON body shape for the POST endpoint, and submits an elements array containing text and image overlays at the requested positions. The agent never handles the API key directly because Jentic's vault injects it at execution time.

Example prompt: Use Jentic to search 'generate a branded image', load the generateImagePost schema, and execute it with an elements array containing a title text and a logo image overlay

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | / | Generate an image via URL query parameters |
| POST | / | Generate an image from a JSON body with elements array |
| GET | /templates | List available templates in the account |

## Key resources

- **Image Generation** — Render images via URL query parameters (GET) or a structured JSON body (POST) returning PNG, JPEG, or WebP binary content
- **Templates** — List saved Bruzu account templates with their ID, dimensions, and preview URL

## Why Jentic

- **Setup:** Wiring Bruzu by hand means passing your apiKey as the query parameter on every request and building the template and parameter payload for each render yourself. Through Jentic you install once, import the Bruzu API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Bruzu takes the template and render parameters in the request, not as a resource id in the URL path, so scoping is operations-only: limit the agent to the operations it needs, such as rendering an image and listing templates. You choose which operations it may call.
- **Credential handling:** Your Bruzu API key is stored once, encrypted, by your own Jentic One instance and injected as the apiKey query parameter at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'generate an Open Graph image from a template', and Jentic returns the matching Bruzu render operation with its parameter schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Buffer API** — Schedules and publishes the social media posts that Bruzu generated images attach to
- **Bluesky API** — Posts the rendered Bruzu image to the Bluesky social network
- **Bubble Data API** — Stores generated image URLs and metadata in a no-code Bubble app

## FAQ

### Why is there no official OpenAPI spec for Bruzu API?

Bruzu does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Bruzu API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Bruzu API use?

Bruzu uses an API key passed as the apiKey query parameter on every request. The key is obtained from the Bruzu dashboard. When called through Jentic, the apiKey is stored encrypted in your Jentic One instance and injected at execution time, so the raw key never enters the agent's prompt or context.

### Can I generate Open Graph images with the Bruzu API?

Yes. Issue a GET request to / with width=1200, height=630, a template ID, and a.text set to the page title. Bruzu returns a PNG that can be served directly from your og:image meta tag. The same endpoint accepts backgroundColor, backgroundImage, logo, and per-element text and font parameters for fully branded cards.

### What are the rate limits for the Bruzu API?

Specific rate limits are not published in the spec, but the API returns HTTP 429 when limits are exceeded. Check your plan in the Bruzu dashboard at https://bruzu.com for the current quota. When 429 is returned, retry with exponential backoff before falling back to a static image.

### How do I generate a personalised image with the Bruzu API through Jentic?

Install the SDK with pip install jentic, then search for 'generate a branded image', load the generateImagePost schema, and execute with a JSON body containing an elements array. Jentic resolves the POST / endpoint, supplies the API key from the vault, and returns the rendered image binary.

### What image formats does the Bruzu API support?

Bruzu returns PNG by default and supports JPEG and WebP via the format query parameter. JPEG and WebP also accept a quality parameter from 1 to 100 (default 90). Choose WebP at quality 85 for the smallest file size on web pages and PNG when transparency is required.

### Can I limit what my agent is allowed to do with the Bruzu API?

Yes. Because you run Jentic One yourself, your own rules decide which Bruzu operations and credentials the agent may use. Bruzu takes the template and render parameters in the request body or query rather than as a resource ID in the URL, so scoping is operations-only: you can allow the agent to render images while withholding the ability to list account templates, or the reverse. Only the operations you enable, such as generating an image or listing templates, are exposed to the agent.
