Skills snapog

Generate social images and OG cards from professional templates via the SnapOG API. One API call = one pixel-perfect PNG.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/beameasy/snapog" ~/.claude/skills/clawdbot-skills-snapog && rm -rf "$T"
manifest: skills/beameasy/snapog/SKILL.md
source content

SnapOG — Social Image Generation

Generate OG images, social cards, and marketing visuals from professionally designed templates. Returns pixel-perfect PNGs in under 100ms.

API Base:

https://api.snapog.dev

Authentication

All generation requests require a Bearer token. The API key is read from the

SNAPOG_API_KEY
environment variable.

Authorization: Bearer $SNAPOG_API_KEY

Preview and template listing endpoints work without authentication.

Available Templates

TemplateIDBest For
Blog Post
blog-post
Blog articles, tutorials, documentation
Announcement
announcement
Product launches, updates, releases
Stats Card
stats
Metrics dashboards, quarterly results
Quote
quote
Testimonials, pull quotes, social shares
Product Card
product
SaaS products, pricing, features
GitHub Repo
github-repo
Open source projects, repo cards
Event
event
Conferences, meetups, webinars
Changelog
changelog
Release notes, version updates
Brand Card
brand-card
Company pages, docs, marketing
Photo Hero
photo-hero
Blog headers, news, portfolios

Core Workflows

1. List templates and discover parameters

curl https://api.snapog.dev/v1/templates

Returns all templates with their

paramSchema
(parameter names, types, required fields, defaults). Always call this first if the user hasn't specified a template.

2. Generate an image (POST)

Use this for downloading images or advanced options:

curl -X POST https://api.snapog.dev/v1/generate \
  -H "Authorization: Bearer $SNAPOG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "blog-post",
    "params": {
      "title": "Building with MCP",
      "author": "Taylor",
      "tags": ["AI", "Tools"],
      "accentColor": "#6366f1"
    }
  }' \
  --output og-image.png

POST body fields:

  • template
    (string, required) — template ID
  • params
    (object, required) — template parameters
  • width
    (number) — image width in pixels (default: 1200)
  • height
    (number) — image height in pixels (default: 630)
  • format
    ("png" | "svg" | "pdf") — output format (default: png)
  • fontFamily
    (string) — any Google Font family name
  • webhook_url
    (string) — URL to POST when generation completes

Save the response body directly to a

.png
file. The response Content-Type is
image/png
.

3. Generate via URL (GET)

Use this when the user needs a URL to embed in HTML meta tags, markdown, or anywhere an image URL is needed:

https://api.snapog.dev/v1/og/blog-post?title=Building+with+MCP&author=Taylor&tags=AI,Tools

This URL itself serves the image. Parameters are query strings. Requires

Authorization
header or a signed URL.

4. Preview a template (no auth needed)

curl https://api.snapog.dev/v1/preview/blog-post --output preview.png

Renders the template with its default parameters. Useful for showing the user what a template looks like before customizing.

5. Create a signed URL (for meta tags)

Signed URLs let you embed images in

<meta>
tags without exposing the API key:

curl -X POST https://api.snapog.dev/v1/sign \
  -H "Authorization: Bearer $SNAPOG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "blog-post",
    "params": { "title": "My Post" },
    "expiresIn": 86400
  }'

Returns

{ "url": "https://api.snapog.dev/v1/og/blog-post?title=...&token=..." }
. This URL works without authentication and can be placed directly in HTML:

<meta property="og:image" content="SIGNED_URL_HERE" />

6. Batch generate (multiple sizes)

Generate the same image in multiple sizes at once:

curl -X POST https://api.snapog.dev/v1/batch \
  -H "Authorization: Bearer $SNAPOG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "blog-post",
    "params": { "title": "My Post" },
    "sizes": ["og", "twitter", "farcaster", "instagram-square"]
  }'

Size presets:

og
(1200x630),
twitter
(1200x628),
farcaster
(1200x800),
instagram-square
(1080x1080),
instagram-story
(1080x1920),
linkedin
(1200x627),
facebook
(1200x630),
pinterest
(1000x1500).

Common Parameters

Most templates accept these shared parameters:

  • title
    (string, required) — main heading
  • accentColor
    (color) — theme color, e.g.
    #6366f1
  • logo
    (url) — logo image URL
  • fontFamily
    (string) — any Google Font, e.g.
    "Space Grotesk"

Each template has additional specific parameters. Call

/v1/templates
to see the full schema for any template.

Tips

  • Choosing a template: Match the content type —
    blog-post
    for articles,
    announcement
    for launches,
    github-repo
    for OSS projects,
    stats
    for metrics,
    quote
    for testimonials.
  • Colors: Pass hex colors like
    #6366f1
    . Most templates support
    accentColor
    for theming.
  • Arrays: For
    tags
    and
    changes
    , pass as JSON arrays:
    ["tag1", "tag2"]
    .
  • Stats: The
    stats
    template expects a JSON array:
    [{"label": "Users", "value": "10K"}]
    .
  • Images: For
    logo
    ,
    image
    ,
    authorImage
    — pass a publicly accessible URL.
  • Output: Default is 1200x630 PNG (standard OG image size). Use
    width
    /
    height
    to customize.
  • Formats: Use
    "svg"
    for vector output,
    "pdf"
    for print-ready documents.

Full API Docs

For the complete API reference as markdown (useful for deeper integration):

curl https://api.snapog.dev/v1/docs