Template gallery / og-card

og-card

1200x630 social share card. Renders on the Satori fast path.

satori default PNG 5 top-level fields 1 unit

Rendered preview of the og-card template
Rendered by Galley from the example payload below, at 816px wide .

Fields

The full JSON Schema is below. Required fields are marked; anything missing comes back as a 422 naming the path, the expected type and a value that would be accepted.

Field Type Required Description
title string required
subtitle string optional
eyebrow string optional
accent string optional
background string optional

Default render options

Applied unless you override them. Options are part of the cache key.

width 1200
height 630

Example payload

This exact object renders the preview above. It is also what the API echoes back in a validation error, so an agent can repair a payload without a round trip to the docs.

example.jsonjson
{
  "eyebrow": "Galley Render",
  "title": "Documents for agents",
  "subtitle": "JSON in, PDF out. Every render deterministic, cached, and signed.",
  "accent": "#2dd4bf",
  "background": "#0b0f14"
}

Render it

With an API keyshell
curl -sS https://api.galleyrender.com/v1/render \
  -H "Authorization: Bearer $GALLEY_API_KEY" \
  -H 'content-type: application/json' \
  -d '{
  "template": "og-card@1",
  "format": "png",
  "data": {
    "eyebrow": "Galley Render",
    "title": "Documents for agents",
    "subtitle": "JSON in, PDF out. Every render deterministic, cached, and signed.",
    "accent": "#2dd4bf",
    "background": "#0b0f14"
  }
}'
With no API key, over MCPshell
# No API key. The first call mints a 50-render trial.
curl -sS https://mcp.galleyrender.com/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "render",
      "arguments": {
        "template": "og-card",
        "format": "png",
        "data": {"eyebrow":"Galley Render","title":"Documents for agents","subtitle":"JSON in, PDF out. Every render deterministic, cached, and signed.","accent":"#2dd4bf","background":"#0b0f14"}
      }
    }
  }'

Pin the version — og-card@1 — in anything you ship. Publishing a new version never changes an old one. Render endpoint reference →

Try a free tool

Renders the example payload on the production service. No account, no key.

JSON Schema

schema.json (5 top-level properties)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "OG card",
  "type": "object",
  "required": [
    "title"
  ],
  "additionalProperties": true,
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "examples": [
        "Documents for agents"
      ]
    },
    "subtitle": {
      "type": "string",
      "maxLength": 200,
      "examples": [
        "JSON in, PDF out."
      ]
    },
    "eyebrow": {
      "type": "string",
      "maxLength": 60,
      "examples": [
        "Galley Render"
      ]
    },
    "accent": {
      "type": "string",
      "default": "#0f766e",
      "examples": [
        "#0f766e"
      ]
    },
    "background": {
      "type": "string",
      "default": "#0b0f14",
      "examples": [
        "#0b0f14"
      ]
    }
  }
}