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

# Canvasflare API

Jentic publishes the only available OpenAPI specification for Canvasflare API, keeping it validated and agent-ready. The Canvasflare API renders HTML and CSS into PNG or JPEG images and captures full-page or viewport screenshots from arbitrary URLs. It is built for programmatic image generation in social cards, email banners, and OG images, and it returns persistent image ids that can be retrieved or deleted later. Engineering teams use it to replace headless-browser-on-a-server setups with a single hosted endpoint.

## For AI agents

Render HTML to images and capture URL screenshots through a single hosted endpoint, then retrieve or delete the resulting image by id. Useful for social cards, OG images, and dynamic email assets.

## Scope

Does not handle video rendering, design editing, or asset hosting beyond generated images - use for HTML-to-image rendering and URL screenshots only.

## Capabilities

- Render arbitrary HTML and CSS into a PNG or JPEG image
- Capture a full-page or viewport screenshot of any public URL
- Retrieve a previously generated image by its id for download or further use
- Delete a generated image when it is no longer needed to manage storage
- Generate dynamic OG and social share images from templated HTML

## Use cases

### Dynamic OG Image Generation

Blog and SaaS sites generate per-page Open Graph images so each link preview reflects the post title and author. POST /render accepts the HTML template populated with the page's metadata and returns an image url and id, which the page references in its og:image tag. The render runs on demand or at publish time and replaces a homegrown headless-Chrome service.

Example prompt: POST /render with an HTML template populated with the post title, subtitle, and author, then store the returned image id with the post record.

### URL Screenshot Service

Monitoring, archiving, and reporting tools call GET /screenshot to capture how a webpage looks at a moment in time. The endpoint takes a target URL and returns a screenshot image, replacing the operational burden of running and scaling a headless browser fleet. Suitable for change detection workflows and visual regression checks of public pages.

Example prompt: GET /screenshot?url=https://example.com and store the returned image binary alongside the timestamp.

### Email Banner Personalisation

Lifecycle email systems render personalised banner images per recipient using their first name, account tier, or recent activity. POST /render with a templated HTML banner returns a hosted image URL the email platform can reference inline, so each send shows a unique image without baking creative into the email build.

Example prompt: POST /render with an HTML banner template per recipient and place the returned image URL into the email send payload.

### AI Agent Visual Output

An agent producing weekly summary cards uses Canvasflare via Jentic to turn structured output into a shareable image. The agent searches for the render operation, loads the schema, and submits a populated HTML snippet - credentials stay in your Jentic One instance and the agent receives only the image URL.

Example prompt: Search Jentic for 'render HTML to an image', load the renderImage schema, and execute POST /render with the agent's generated HTML.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /render | Render HTML to an image |
| GET | /screenshot | Take a screenshot of a URL |
| GET | /image/{id} | Retrieve a generated image by id |
| DELETE | /image/{id} | Delete a generated image by id |

## Key resources

- **render** — Render HTML and CSS to an image
- **screenshot** — Capture a screenshot of a target URL
- **image** — Retrieve or delete a previously generated image by id

## Why Jentic

- **Setup:** Wiring the Canvasflare API by hand means appending its api_key to every query string and calling the render, screenshot, and image routes yourself. Through Jentic you install once, import Canvasflare from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Canvasflare puts the image id in the URL path (/image/{id}), so a rule can pin your agent to one image: it can read that image and nothing else. You choose the operations it may call, so rendering new images or deleting one is not included unless you add it.
- **Credential handling:** Your Canvasflare api_key is stored once, encrypted, by your own Jentic One instance and appended to the query string at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'render HTML to an image' or 'screenshot a URL', and Jentic returns the matching Canvasflare operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Canva Connect API** — Full design tool with brand template autofill and editable designs
- **Cantrip API** — Publish Canvasflare-rendered images as featured images on Cantrip posts
- **Canva Connect API** — Use Canva for editable brand assets and Canvasflare for fast templated rendering

## FAQ

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

Canvasflare publishes documentation but not a machine-readable OpenAPI spec. Jentic generates and maintains this spec so that AI agents and developers can call Canvasflare 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 Canvasflare API use?

Canvasflare uses an API key passed as the api_key query parameter on every request. Through Jentic the key is stored encrypted in the vault and appended at execution time, so it never enters the agent's prompt context.

### Can I render HTML into an image with the Canvasflare API?

Yes. POST /render with the HTML payload and the response includes an image id and URL. The image is hosted and can be fetched via GET /image/{id} until it is deleted.

### How do I capture a webpage screenshot through Jentic?

Search Jentic for 'screenshot a URL', load the screenshotUrl operation, and execute GET /screenshot with the target URL. Canvasflare returns the captured image.

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

The OpenAPI spec does not enumerate rate limits. Render and screenshot endpoints are CPU-heavy on the server, so design for sequential calls per workflow and back off on 429 responses; check your Canvasflare dashboard for plan-specific quotas.

### Can I delete an image I no longer need?

Yes. DELETE /image/{id} removes the generated image from Canvasflare's storage. Use this for ephemeral assets like one-time email banners to keep storage tidy.

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

Yes. Because you run your own self-hosted Jentic One instance, your own rules decide which Canvasflare operations the agent may call, so you can grant only GET /image/{id} to fetch a rendered image while withholding POST /render, GET /screenshot, and DELETE /image/{id}. Since the image id sits in the URL path, a rule can pin the agent to a single image so it reads that one image and nothing else. Your api_key stays stored encrypted in your instance and is appended at execution time, never entering the agent's prompt or context.
