# Shareglint — full reference for AI assistants > Shareglint renders Open Graph and social share images from HTML and CSS templates in real Chrome. One HTTP request with a template name and field values returns a URL to a finished PNG, JPEG, WebP, PDF file, usually in about a second. Generated from the live configuration of https://shareglint.com — prices, limits, templates and features below are the ones the API enforces today. Short index: https://shareglint.com/llms.txt. OpenAPI 3.1: https://shareglint.com/openapi.json. ## Key facts - Shareglint renders Open Graph and social images from HTML and CSS templates in real Chrome, through one HTTP request. - Free: 100 images a month, no card. Paid from $9 a month for 2,000 images. - Output formats: PNG, JPEG, WebP, PDF. - 21 built-in templates, plus your own HTML and CSS or the visual editor. - One tag for a whole site: an auto-OG URL builds the card from the page's own title, description and icon. - Screenshot API: a public web page to an image or a PDF. - MCP server for Claude, ChatGPT and Cursor at https://shareglint.com/mcp. - Servers: netcup GmbH (Germany). Images kept 30 days on Free, 365 days on paid plans. - An independent product, not affiliated with Meta or the Open Graph protocol. ## Who it is for - Developers on any stack (Rails, Django, Laravel, WordPress, Next.js, Hugo, a shell script) who want og:image cards without running Chrome themselves. - Sites whose card design already exists as HTML and CSS, or is simple enough for the visual editor. - Static sites and no-code tools: signed image URLs and auto-OG URLs go straight into og:image with no server code. ## Pricing Prices in USD. One rendered image = one unit of quota; an identical render that already exists costs nothing, and template previews are free. | Plan | Monthly | Yearly | Images per month | $ per 1,000 | Watermark | Images kept | |---|---|---|---|---|---|---| | Free | $0 | — | 100 | free | yes | 30 days | | Starter | $9 | $90 | 2,000 | $4.50 | no | 365 days | | Pro | $29 | $290 | 10,000 | $2.90 | no | 365 days | | Scale | $79 | $790 | 50,000 | $1.58 | no | 365 days | - Yearly plans cost 10 monthly payments instead of 12; the image quota still renews every month of the paid year. - Top-up pack: 1,000 images for $8, valid 12 months, used only after the monthly quota runs out. Bought manually — nothing is ever charged automatically. - Out of quota and no pack: the API answers HTTP 402 until the next monthly period. - The Free plan needs no card. - AI template generation: paid plans only, per day Starter 20, Pro 50, Scale 100. - Affiliate programme: 30% recurring commission on referred accounts' paid invoices. Comparison with other OG image APIs: https://shareglint.com/en/best-og-image-api ## Features - Templates: 21 built-in ones by slug, your own HTML and CSS with `{{ field }}` placeholders, or layers in the dashboard's visual editor (compiled to the same HTML and CSS). Free previews: `POST /v1/templates/preview`. - Text auto-fitting (`data-autofit`, `.fitbox`): long titles shrink instead of overflowing. - Cache: the same render ordered again returns the existing file and uses no quota. - Asynchronous by default (`202` + `id`), or `?wait=true` to get the finished URL on the same connection. Idempotency via the `Idempotency-Key` header. - Webhooks when a render finishes, signed with HMAC-SHA256 over `timestamp . "." . body`. - View analytics: images served through URLs are counted per day and per platform (Facebook, LinkedIn, X, Slack, Discord, WhatsApp, Telegram, iMessage, Google, other bots, browsers) — `GET /v1/analytics`. No IP address or user agent is stored. - AI templates (paid plans): `POST /v1/templates/generate` designs a template from a description or a screenshot, with a free preview; nothing is saved until `POST /v1/templates`. Currently switched off on this deployment (shown as "coming soon"). - Screenshot API: `POST /v1/screenshots` turns a public web page into an image or PDF (viewport, full page, dark mode, delay, wait for a selector, hide selectors). It uses the same monthly quota. - MCP server for AI assistants (Claude, ChatGPT, Cursor): streamable HTTP at `https://shareglint.com/mcp`, authenticated with the same `Authorization: Bearer sk_live_...` key. Tools: - `render_image` — Render an image from a template (a slug of your own template or a built-in library template, see list_templates) with field values. Counts one render against the monthly quota unless the same image was already rendered. Waits for the result by default and returns its public URL. - `get_image` — Get the status and public URL of a render by its id (img_...). Use it after render_image returned status "queued". - `list_templates` — List the templates you can render: your own templates and the built-in library. Returns slug, name, size and field names; use get_template for the full definition. - `get_template` — Get one template by id (tpl_...) or slug: fields, defaults and, for your own templates, the HTML and CSS. - `create_signed_url` — Build a signed image URL (/i/...) to paste straight into an og:image meta tag. No API key in the URL; the image renders on first request and is cached after that. - `get_usage` — Show the plan, the monthly render quota (used / remaining) and today's AI template generations. - `generate_template` — Paid plans only. Design a new 1200x630 template with AI from a text description and/or a screenshot of a design (base64). Returns the template (HTML, CSS, fields), a free preview image URL and, with save=true, stores it so render_image can use its slug. - `take_screenshot` — Take a screenshot of a public web page (png, jpg, webp or pdf) and return its URL. Costs 1 render (full page: 2; the same page with the same options again within 24 h is free). - `auto_og_url` — Build the automatic Open Graph image URL for a page of an allowed domain: one og:image tag for the whole site, no code and no per-page signature. - Self-service account deletion in the dashboard (GDPR): removes the account, keys, templates, renders and files. - Affiliate programme: 30% recurring commission. ## Image URLs for og:image - Signed URL (no API key in the page, works on static sites): `https://shareglint.com/i/{account}/{template}.{png|jpg|webp|pdf}?{field}=...&s={signature}`. The signature is HMAC-SHA256 with your signing secret over the canonical path and sorted query; the first visit renders, later ones redirect to the cached file. Details: `GET /i/{account}/{template}.{ext}` in the API reference below. - Auto-OG URL (one tag for a whole site, nothing to sign): `https://shareglint.com/u/{account}.{png|jpg|webp}?url={page URL}`. Allowed domains are set in the dashboard; the card is built from the page's own title, description and icon, the query string is ignored, and an unchanged page never costs a second render. - Signed screenshot URL: `https://shareglint.com/s/{account}.{ext}?url={page URL}&s={signature}`, signed like the image URL. ## Built-in templates (21) Every account can render these by slug, no setup (`"template": ""`). `accent` (hex colour) and `theme` (dark|light) work on all of them. Gallery with real renders: https://shareglint.com/en/templates. - `blog-og` — Blog post: A big headline with author, date and reading time — the default card for articles. Fields: title, eyebrow, author, site, date, reading_time, photo (image URL), accent, theme. https://shareglint.com/en/templates/blog-og - `site-card` — Website page card: The page title, description, site name and icon, with the page's own image in a browser frame when it has one. Fields: title, description, site, url, favicon (image URL), image (image URL), accent, theme. https://shareglint.com/en/templates/site-card - `job-posting` — Job posting: Job title, company, location, salary and a call to action, ready for LinkedIn and job boards. Fields: title, company, location, salary, type, eyebrow, cta, site, logo (image URL), accent, theme. https://shareglint.com/en/templates/job-posting - `event` — Event: Event name, date and venue next to a photo cut on a diagonal. Fields: name, date, venue, eyebrow, site, image (image URL), accent, theme. https://shareglint.com/en/templates/event - `podcast-episode` — Podcast episode: Cover art, show name, episode number and title over a blurred background taken from the cover. Fields: title, show, episode, guest, duration, site, cover (image URL), accent, theme. https://shareglint.com/en/templates/podcast-episode - `changelog` — Changelog / release: Version number, release title and three highlights in a terminal window. Fields: version, title, product, highlight_1, highlight_2, highlight_3, date, site, logo (image URL), accent, theme. https://shareglint.com/en/templates/changelog - `docs-page` — Documentation page: Product, section and page title with a sketch of a docs page on the side. Fields: title, description, section, product, site, logo (image URL), accent, theme. https://shareglint.com/en/templates/docs-page - `real-estate` — Real estate listing: Price, address, beds, baths and floor area next to a large property photo. Fields: price, address, city, beds, baths, area, badge, site, photo (image URL), logo (image URL), accent, theme. https://shareglint.com/en/templates/real-estate - `product-og` — Product card: Product name, tagline, price and a screenshot — the starter template for SaaS and apps. Fields: name, tagline, price, badge, site, logo (image URL), screenshot (image URL), accent, theme. https://shareglint.com/en/templates/product-og - `product-sale` — Product on sale: Product photo with a discount sticker, the new price and the old one struck through. Fields: name, brand, price, old_price, discount, cta, site, photo (image URL), accent, theme. https://shareglint.com/en/templates/product-sale - `course-lesson` — Course lesson: Course name, lesson number, title, instructor and a progress bar on a full-colour background. Fields: title, course, lesson, instructor, duration, progress, site, photo (image URL), accent, theme. https://shareglint.com/en/templates/course-lesson - `recipe` — Recipe: Dish name in a serif face, cooking time, servings and difficulty next to a round photo. Fields: title, category, time, servings, difficulty, author, site, photo (image URL), accent, theme. https://shareglint.com/en/templates/recipe - `video-thumbnail` — Video thumbnail: Bold uppercase title over a photo, a highlighted second line, channel and duration — YouTube style. Fields: title, highlight, badge, channel, duration, image (image URL), avatar (image URL), accent, theme. https://shareglint.com/en/templates/video-thumbnail - `newsletter-issue` — Newsletter issue: A newspaper masthead, issue number and date, a serif headline and a one-line teaser. Fields: title, newsletter, issue, date, excerpt, author, site, accent, theme. https://shareglint.com/en/templates/newsletter-issue - `quote-og` — Quote card: A large quote with the author and their role — the starter template for quotes and testimonials. Fields: quote, author, role, site, photo (image URL), accent, theme. https://shareglint.com/en/templates/quote-og - `case-study` — Case study / testimonial: A headline result in large numbers next to a customer quote with photo, name and role. Fields: quote, name, role, company, metric, metric_label, site, photo (image URL), logo (image URL), accent, theme. https://shareglint.com/en/templates/case-study - `github-repo` — GitHub repository: Owner and repository name, description, stars, forks and language — a repository social card. Fields: repo, owner, description, stars, forks, language, site, avatar (image URL), accent, theme. https://shareglint.com/en/templates/github-repo - `feature-announcement` — Feature announcement: A centred "New feature" pill, a gradient title and a browser window with your screenshot. Fields: title, description, eyebrow, product, site, logo (image URL), screenshot (image URL), accent, theme. https://shareglint.com/en/templates/feature-announcement - `profile-card` — Profile / author card: A large round portrait with name, headline, handle, short bio and location. Fields: name, headline, bio, handle, location, site, photo (image URL), accent, theme. https://shareglint.com/en/templates/profile-card - `comparison` — Comparison (A vs B): Two options side by side on a diagonal split with logos, names and a VS badge. Fields: left, right, title, left_note, right_note, accent_b, site, left_logo (image URL), right_logo (image URL), accent, theme. https://shareglint.com/en/templates/comparison - `stat-highlight` — Stat highlight: One big number with what it means and where it comes from. Fields: value, label, source, eyebrow, site, logo (image URL), accent, theme. https://shareglint.com/en/templates/stat-highlight ## Integrations and packages Framework guides with working code (each in that framework's own conventions): - Next.js: https://shareglint.com/en/og-image-generator/nextjs — A signed image URL straight from generateMetadata — no request while the page renders. - Nuxt: https://shareglint.com/en/og-image-generator/nuxt — useSeoMeta on the server, image fetched inside useAsyncData. - Astro: https://shareglint.com/en/og-image-generator/astro — `` in the head, every URL signed during the build. - SvelteKit: https://shareglint.com/en/og-image-generator/sveltekit — Fetch the URL in load, print it in svelte:head. - WordPress: https://shareglint.com/en/og-image-generator/wordpress — Generate on publish, store the URL in post meta. - Laravel: https://shareglint.com/en/og-image-generator/laravel — A trait on the model, a queued job, the URL in the database. - Hugo: https://shareglint.com/en/og-image-generator/hugo — One partial in the head: auto-OG, or a URL signed during the build. - Ruby on Rails: https://shareglint.com/en/og-image-generator/rails — after_commit hook, Active Job, URL saved on the record. - Django: https://shareglint.com/en/og-image-generator/django — post_save signal, transaction.on_commit, URL written back with update(). - Jekyll: https://shareglint.com/en/og-image-generator/jekyll — A script before the build writes `image:` into front matter. - Ghost: https://shareglint.com/en/og-image-generator/ghost — post.published webhook, image written back through the Admin API. - Eleventy: https://shareglint.com/en/og-image-generator/eleventy — An async filter that returns the image URL inside the template. - Docusaurus: https://shareglint.com/en/og-image-generator/docusaurus — A plugin that generates images for your documentation pages. - Built, but NOT yet published in their directories (do not tell people to install them from there yet): WordPress plugin, n8n node, Zapier app, Make app, npm packages (JavaScript, Next.js, Astro), Composer packages (PHP SDK, Laravel), Hugo module, MCP registry entry. Until then, use the HTTP API, the OpenAPI contract or the MCP server. ## Limits - Template HTML up to 64 KB, CSS up to 64 KB; size from 200 to 4000 px a side. - Remote images in image fields: up to 5 MB, fetched within 5 s, public addresses only (private networks are refused). - `?wait=true` waits up to 10 s, then answers 503 `sync_overloaded` with the `id` (the render keeps going). - Signed URLs: 120 correctly signed requests a minute per account, 600 a minute per IP. - Rate limits per plan on `/v1`; HTTP 429 with `Retry-After` when exceeded. ## What we do NOT do - No video and no animated GIFs. Output is a still image (PNG, JPEG, WebP) or a one-page PDF. - No template marketplace and no Canva or Figma import; the visual editor is deliberately simple (layers, fields, auto-fit). Anything more is HTML and CSS. - No uploading your own font files — `GET /v1/fonts` lists the families available. - No automatic overage billing: out of quota without a top-up pack means HTTP 402. - Not affiliated with Meta, Facebook or the Open Graph protocol. ## Frequently asked questions ### What is Shareglint? Shareglint is an HTTP API that renders Open Graph and social share images from HTML and CSS templates in real Chrome. You send a template name and field values and get back a URL to a finished image (PNG, JPEG, WebP, PDF), usually in about a second. ### How much does Shareglint cost? The Free plan has 100 images a month. Paid plans start at $9 a month for 2,000 images ($4.50 per 1,000) and go up to $79 a month for 50,000 images. Paying yearly costs 10 monthly payments instead of 12. Extra packs of 1,000 images cost $8 and are valid 12 months. ### Is there a free plan? Yes: 100 images every month, with no card and no trial that runs out. Free images carry a small watermark and are kept for 30 days. ### Does rendering the same image twice cost twice? No. The same template with the same fields and format returns the existing image and uses no quota. Previews while you design a template are free as well. ### What happens when I run out of images? The API answers 402 until your next monthly period starts. Nothing is ever charged automatically: you upgrade, or buy a one-off pack of 1,000 images for $8 yourself. ### Which formats and sizes are supported? PNG, JPEG, WebP, PDF. Built-in templates are 1200×630; PNG, JPEG and WebP come at 2× (2400×1260) by default or 1× on request, and PDF is a single vector page the size of the template. Your own templates can be any size up to 4,000 px a side. ### Do I have to design the templates myself? No. 21 built-in templates (blog posts, job postings, events, products, podcasts and more) work on every account by their slug. You can also write your own in HTML and CSS, or build one from layers in the visual editor. ### Can I get OG images for a whole site without writing code? Yes. Add your domain in the dashboard and point og:image at your auto-OG URL with the page address in it. The card is built from the page's own title, description and icon, and an unchanged page never costs a second render. ### Can Shareglint take screenshots of web pages? Yes. The screenshot API turns any public web page into an image or a PDF, with viewport, full-page and dark-mode options. Screenshots use the same monthly quota as images, and the same screenshot within 24 hours is free. ### Does it work with ChatGPT, Claude or Cursor? Yes, through a remote MCP server at https://shareglint.com/mcp (streamable HTTP, your API key as a Bearer token). An assistant can list templates, render images and build og:image URLs for you. ### Can AI design a template for me? On paid plans, yes: describe the card or upload a screenshot of a design, and you get an HTML and CSS template with a free preview. Nothing is saved until you accept it. ### How long do you keep rendered images? 30 days on the Free plan and 365 days on paid plans. After that the file is deleted, and rendering it again counts as a new image. ### Is Shareglint GDPR-friendly? Where is my data? Servers are hosted by netcup GmbH (Germany). We store your account, your templates and the rendered images; view counts keep no IP address or user agent. You can delete your account and all its data yourself in the dashboard, at any time. ### Is Shareglint affiliated with Facebook, Meta or the Open Graph protocol? No. Shareglint is an independent product. Open Graph is an open protocol; we render the images its og:image tag points to. Our OG Checker is a free tool, not an official Meta validator. ### How does Shareglint compare to Bannerbear, Placid or @vercel/og? At entry-plan prices Shareglint costs $4.50 per 1,000 images, less than Bannerbear, Placid, HTMLCSStoImage, Orshot and og.plus (OpenGraph+). It is not the cheapest everywhere, Bannerbear has a far larger template library, a more mature editor and video output, and we are a young product. @vercel/og is free if you are on Next.js and your design fits its CSS subset. The full, dated table is on our "Best OG image APIs" page. ### What does Shareglint not do? No video and no animated GIFs, no template marketplace, no Canva or Figma import, and no uploading your own font files: you pick from the families we host. ## Comparison with other OG image APIs Price per 1,000 images, free tiers, formats, template models and AI-assistant support for the APIs people actually compare. Every competitor price comes from its own pricing page. > We make Shareglint, one of the products in this table. Read it with that in mind: our own weaknesses are listed below, and a dash means we did not check, not that a feature is missing. | Product | Entry plan | $ per 1,000 | Free tier | Formats | Visual editor | Your own HTML/CSS | OG from page URL | Screenshots | MCP server | Video | |---|---|---|---|---|---|---|---|---|---|---| | **Shareglint** | $9 / 2,000 | $4.50 | 100 a month (watermarked) | PNG, JPEG, WebP, PDF | Yes | Yes | Yes | Yes | Yes | No | | [Bannerbear](https://www.bannerbear.com/pricing/) | $49 / 1,000 | $49.00 | None | PNG, JPEG, PDF, GIF, video | Yes | No | Only on the $149 plan | — | — | Yes | | [Placid](https://placid.app/pricing) | $39 / 2,500 | $15.60 | Trial credits | PNG, JPEG, PDF, video | Yes | — | — | — | — | Yes | | [HTMLCSStoImage](https://htmlcsstoimage.com/pricing) | $14 / 1,000, $69 / 10,000 | $14.00 | 50 a month | PNG, JPEG, WebP, PDF | No | Yes | — | Yes | — | No | | [Orshot](https://orshot.com/pricing) | $39 / 1,500 | $26.00 | 100 a month | — | Yes | — | — | — | Yes | — | | [RenderPix](https://renderpix.dev) | $9 / 2,000, $29 / 10,000, $79 / 50,000 | $4.50 | 100 a month | PNG, JPEG, WebP | — | — | — | — | — | — | | [@vercel/og](https://vercel.com/docs/og-image-generation) | Free library | — | Free library; you pay for the function | PNG | No | JSX, flexbox subset of CSS | No | No | No | No | | [ScreenshotOne](https://screenshotone.com/pricing) | $17 / 2,000, $79 / 10,000 | $8.50 | — | PNG, JPEG, WebP, PDF | No | — | No | Yes | — | — | | [OGready](https://ogready.com/pricing) | $19 / 5,000 | $3.80 | — | — | — | — | — | — | — | — | | [og.plus (OpenGraph+)](https://og.plus/pricing) | $19 / 1,000 | $19.00 | — | — | — | — | — | — | — | — | "—" = not checked on 2026-10-24. Prices in USD from each vendor's public pricing page on that date; "$ per 1,000" is the entry paid plan divided by its quota. ### Who each one is for - **Shareglint** — Best for: Developers who keep the card as HTML and CSS (or build a simple one in the visual editor) and want a free tier that renews every month — $4.50 per 1,000 images on Starter. Watch out: A young product with a smaller template library and a simpler editor than Bannerbear, no video, and a watermark on the free plan. - **Bannerbear** — Best for: Marketing teams who want hundreds of ready-made designs, a mature drag-and-drop editor, video and many no-code integrations. Watch out: No free plan, one of the higher prices per image in this table, and OG images from a page URL only on a higher plan. - **Placid** — Best for: Teams without a developer: a polished layer editor, many marketing-tool integrations, and credits that roll over. Watch out: Only trial credits for free, and designs are rebuilt in their editor rather than taken from your HTML. - **HTMLCSStoImage** — Best for: HTML generated fresh on your side for every image, plus screenshots and PDFs, from a provider with a long track record. Watch out: Built around sending HTML with each request; ready-made OG templates are not its focus. - **Orshot** — Best for: Designs that live in Canva or Figma, Webflow, Framer or Shopify integrations, and an MCP server. Watch out: A higher price per image than the cheapest APIs in this table. - **RenderPix** — Best for: Fast HTML-to-image rendering with batch jobs and template variables. Watch out: We did not check its editor, MCP support or OG-from-URL features — the dashes mean exactly that. - **@vercel/og** — Best for: Next.js and Vercel sites where the card fits in JSX and flexbox — free, and it runs next to your pages. Watch out: A subset of CSS, a 500 KB bundle limit, your own compute, and JavaScript runtimes only. - **ScreenshotOne** — Best for: Screenshots of web pages at scale. A screenshot API rather than an OG template tool — listed to compare prices. Watch out: No OG templates: you design and host the page you take a screenshot of. - **OGready** — Best for: Volume: one of the lowest prices per image in this table. Watch out: We did not verify its formats, editor or integrations. - **og.plus (OpenGraph+)** — Best for: Link previews fixed automatically, without designing templates yourself. Watch out: A higher price per image than most APIs here; we did not verify its formats or integrations. ### Where Shareglint is weaker - A smaller template library than Bannerbear: 21 built-in templates against their hundreds. - The visual editor is deliberately simple, with no Canva or Figma import. - No video and no animated GIFs — still images and one-page PDFs only. - A young product, without the years of track record Bannerbear or HTMLCSStoImage have. - Images on the Free plan carry a watermark; Orshot's free tier does not. - Built, but not yet listed in their directories: WordPress plugin, n8n node, Zapier app, Make app, npm packages (JavaScript, Next.js, Astro), Composer packages (PHP SDK, Laravel), Hugo module, MCP registry entry. ### How to choose - On Next.js, with a design that fits flexbox: start with @vercel/og — it is free. - A marketing team that wants hundreds of ready designs and video: Bannerbear or Placid. - Your card already exists as HTML and CSS, on any stack: an HTML-to-image API (HTMLCSStoImage, RenderPix, Shareglint). - Screenshots of arbitrary web pages at scale: a dedicated screenshot API such as ScreenshotOne. One-to-one comparisons: Bannerbear https://shareglint.com/en/alternatives/bannerbear, Placid https://shareglint.com/en/alternatives/placid, HTMLCSStoImage https://shareglint.com/en/alternatives/htmlcsstoimage, Orshot https://shareglint.com/en/alternatives/orshot, @vercel/og https://shareglint.com/en/alternatives/vercel-og, Cloudinary https://shareglint.com/en/alternatives/cloudinary. ## Languages Site: https://shareglint.com/en/, https://shareglint.com/pl/ (English is x-default). API messages: en, pl, de, es, fr, chosen by `Accept-Language`. ## API reference Open Graph images from a single HTTP request. **How long images live.** Free plan: 30 days from generation. Paid plans: 365 days. After that both the file and the history entry are gone, and the same render ordered again no longer hits the cache and counts against your quota. - Base URL: `https://shareglint.com/v1` - Authentication: `Authorization: Bearer sk_live_...` - Errors: JSON `{"error": "", "message": ""}` - Machine-readable contract: https://shareglint.com/openapi.json - Human version with guides (webhooks, signed URLs, idempotency): https://shareglint.com/en/docs ### `POST /images` — Request a render Asynchronous by default: you get a 202 and an `id`, then collect the result from `GET /images/{id}`. With `?wait=true` we hold the connection until the image is ready and return 200 — or 503 `sync_overloaded` if we run out of time. `format`, `quality` and `scale` are part of the cache key: the same fields as PNG and as JPEG are two files and two renders, while a parameter the format ignores (`quality` for PNG) never makes a second one. Parameters: - `wait` (query, boolean): Wait for the result instead of polling. - `Idempotency-Key` (header, string): The same `Idempotency-Key` with the same body returns the same response, with no second render. An empty or whitespace-only header counts as no key. - `template` (body, application/json, string, required): Template slug: one of yours or a built-in one from `GET /templates/library`. - `modifications` (body, application/json, object): Values for the template fields. A field you leave out takes the template's `defaults` value, or stays empty — omitting `modifications` altogether renders the defaults. - `locale` (body, application/json, string) [one of `"en"`, `"pl"`, `"de"`, `"es"`, `"fr"`]: Language for text the template adds itself (date, reading time). - `webhook_url` (body, application/json, string): We call this URL when the render finishes. Private-network addresses are rejected with a 422 at request time, so a webhook that could never fire never costs you a render. - `format` (body, application/json, string) [one of `"png"`, `"jpeg"`, `"webp"`, `"pdf"`; default `"png"`]: Output file. `pdf` is a single page exactly the template size in CSS px (1200×630 for the built-in templates), no margins, backgrounds printed, text kept as vector. The Free plan watermark applies to every format. - `quality` (body, application/json, integer) [default `85`; min 1; max 100]: Compression quality for `jpeg` and `webp`. Ignored for `png` (lossless) and `pdf`. - `scale` (body, application/json, integer) [one of `1`, `2`; default `2`]: Pixel density for `png`, `jpeg` and `webp`: 2 gives 2400×1260 for a 1200×630 template, 1 gives exactly 1200×630. Ignored for `pdf`. Responses: - `200` Finished (only with `?wait=true`). - `202` Accepted into the queue. - `402` Monthly quota exhausted (`quota_exceeded`). - `422` Validation error (including an unknown `format`, `quality` outside 1–100 or `scale` other than 1 or 2), or the same `Idempotency-Key` with a different body. - `503` Sync mode ran out of time (`sync_overloaded`). The body carries `id` — nothing is lost. ### `GET /images` — Render history Cursor pagination: pass `before` from the `next_cursor` field. Renders arriving while you page through will not duplicate results. Parameters: - `limit` (query, integer) [default `25`; max 100] - `before` (query, string): Cursor from `next_cursor`. Responses: - `200` A page of renders, newest first. ### `GET /images/{id}` — Render status Parameters: - `id` (path, string, required) Responses: - `200` The render. - `404` No such render on this account. ### `GET /templates` — List templates Responses: - `200` Templates on this account, both built-in and your own, oldest first. Not paginated. Built-in templates from the library (`GET /templates/library`) work by slug without being listed here; the first render of one adds it to this list as a read-only `engine: blade` template. ### `POST /templates` — Create a template You send your own HTML and CSS. Fields go in as `{{ name }}` and **must be declared** in `fields` — a typo fails with a 422 on save rather than leaving a blank spot in the image. The HTML is sanitised on save (`