card_from_urlMake a social card for a page that already exists, in one call: fetches the page like a crawler, takes its title, description, author, domain and site icon, picks the starter design that fits the page (a Jev decision over every preset, about 100 ms) and returns the image (shown inline, watermarked, free). Use this first when the user gives a URL: "make an OG image for my latest post". Any field you pass overrides what the page says. Pass preset (see list_presets) to choose the design yourself, or a size. No API key needed; one page fetch plus one render per call.
og_image_urlBuild a signed image URL for a saved template with the given text, ready to put in a page's <meta property="og:image"> tag. Nothing is rendered now: the image is generated when a crawler fetches the URL, cached at the edge for a day, and each uncached fetch spends one image of the monthly quota. Needs an API key. This is the zero-infrastructure way to give every page its own card; use it in page templates, CMS hooks and static site generators. Returns the URL and the ready meta tag.
preview_cardRender a preset with the user's text and return the image (shown inline). Free, no API key; the preview carries a small betterimage.io watermark and does not touch any quota. Use it to show the user what their card will look like before they commit. For a clean image: save_template + render_card on a paid API plan, or the one-off clean download in the editor.
render_cardRender one of the user's saved templates with the given text and return the PNG (shown inline, at 1x). Needs an API key. On a paid plan the image is clean (no watermark); on the free tier it is watermarked. Each call spends one image of the monthly quota. Use it when the user wants the actual file, e.g. to host it themselves. For an og:image tag that needs no hosting, or for a 2x retina file, prefer og_image_url.
save_templateCopy a preset (optionally with the user's text as its new defaults) into the user's account as a saved template, so render_card and og_image_url can use it. Needs an API key. Do this once per design, not per image: afterwards every render only passes the text that changes. Returns the slug to use next and a link to fine-tune the design in the editor.